Buscar este blog

martes, 1 de mayo de 2012

TUTORIAL CON FUNCIONES



capitulo 1 del tutorial
Garcia Gaeta Francisco Armando no.control:11211033
Pseudocodigo:
void InicioInstrucciones()
void Menu()
void Tema1()
void Tema2()
void Tema3()
void Tema4()
void Tema5()
void Tema6()
void Tema7()
int continuar(char decision)
int main()
{
system("color 1f")
int tema=0,c=0,correctas=0
char decision=' ',respuesta=' '
InicioInstrucciones()
Print"\n",    system("PAUSE") system("CLS")
do{
Menu()
Print"Seleccione el tema que desea estudiar:"
Read tema
system("CLS")
switch(tema){
case 1: Tema1()
     break
case 2: Tema2()
     break
case 3: Tema3()
     break
case 4: Tema4()
     break
case 5: Tema5()
     break
case 6: Tema6()
     break
case 7: Tema7()
     break
default: Print"El tema que eligio no esta disponible",    }
system("PAUSE") system("CLS")
Print"Desea seleccionar otro tema(s/n/):"
Read decision
system("CLS")
}while(decision=='s'||decision=='s')
continuar(decision)
getch()
}

void InicioInstrucciones()
{
Print"\t\tTutorial de programacion estructurada",    
Print"\n",    system("PAUSE")
Print"\n",    
Print"Objetivo:",    
Print"Que el alumno conosca y conprenda el lenguaje de programacion ademas\nde que gane habilidades programando y en la resolucion de problemas.",    
Print"\n",    system("PAUSE") system("CLS")
Print"\nInstrucciones:Escriba el numero correspondiente al capitulo que desea\n"
"estudiar,al finalizar de leer el capitulo oprimir enter despues escribir\n"
"'s' si desea seleccionar otro capitulo, 'e' si desea iniciar el examen\n"
"o 'n' si desea salir del programa segun sea el caso",    }

void Menu()
{
Print"\t\tTutorial de programacion estructurada",                                  
Print"\t\t\t\tCapitulo 1",    
Print"\nTemas.",    
Print"1.Introduccion a la programacion...",    
Print"2.Solucion de problemas y desarrollo del software.... ",    
Print"3.Algoritmos.... ",    
Print"4.Errores comunes de programacion....",    
Print"5.Resumen del capitulo....",    
Print"6.Apendice del capituo: Hardware de computacion y conceptos de almacenamiento.",    
Print"7.Examende diagnostico",    }

void Tema1()
{
Print"1.1.Introduccion a la programacion.",    
Print"\n",    
Print"Historia de C y C++:\n"
"El comite para el estandar de ANSI C fue formado en 1983 con el objetivo de \n"
"crear un lenguaje uniforme a partir del C original, desarrollado por Kernighan \n"
"y Ritchie en 1972, en la ATT.el Lenguaje C++ se comenzo a desarrollar en 1980.\n"
"Su autor fue B. Stroustrup .\n"
"En un principio se trataba de un proyecto de extension del lenguaje C que se\n"
"denominaba C with classes.\n"
"Este lenguaje empieza a ser utilizado fuera de la ATT en 1983.\n"
"Ante su gran difusion y exito, la ATT empezo a estandarizarlo en 1987.\n"
"En 1989 se formo el comite ANSI para estandarizarlo(seguido del ISO).\n"
"Conceptos basicos de un entorno de programacion C++\n"
"Algunos programas simples estan contenido en un solo modulo fuente, por ejemplo:\n"
"nombre.cc\n"
"La extension de los modulos fuente de C++ puede ser cpp (por lo de C plus plus)\n"
"o cc.\n"
"Para compilarlos hay que ejecutar la linea de comandos: \n"
"CC -g -o nombre nombre.cc\n"
"La opcion -g genera informacion adicional por si se quiere utilizar el \n"
"depurador, el cual se invoca de la forma siguiente: \n"
"gdb nombre cuando se quiere ejecutar nombre bajo el control del depurador.\n"
"C++ es compatible hacia abajo con C, lo cual proporciona una via muy eficaz \n"
"para aprender C++. Esto es debido a que, como la mayoria de los programas en C \n"
"son tambien programas de C++, podemos aprender este ultimo introduciendo en \n"
"programas en C los elementos nuevos de C++.\n"
"Ahora consideramos la situacion absolutamente general de la generacion del \n"
"ejecutable para un programa en C++ integrado por un numero arbitrario de \n"
"modulos fuente.\n"
"Consideremos el caso de tres modulos fuente: mod1.cc , mod2.cc y mod3.cc .\n"
"Se supone que en cada uno de los tres modulos fuente del ejemplo, se incluye \n"
"un fichero de cabecera escrito por el usuario: \n"

"hashtag include mifichero1.hh en mod1.cc \n"
"hashtag include mifichero2.hh en mod2.cc \n"
"hashtag include mifichero3.hh en mod3.cc\n"

"El fichero makefile para generar el modulo ejecutable prog es el siguiente: \n"
"prog: mod1.o mod2.o mod3.o \n"
"CC -g -o prog mod1.o mod2.o mod3.o \n"
"mod1.o: mod1.cc mifichero1.h \n"
"CC -g -c mod1.cc \n"
"mod2.o: mod2.cc mifichero2.h \n"
"CC -g -c mod2.cc \n"
"mod3.o: mod3.cc mifichero3.h \n"
"CC -g -c mod3.cc\n"

"Un Programa Simple\n"
"El primer programa en C++ sera el programa  hello, world .\n"

" 1    // pp1.cc - primer programa en C++\n"
" 2    hashtag include <iostream.h>\n"
" 3    main()\n"
" 4    {\n"
" 5      cout ,   hello, world ,     \n"
" 6    }\n"
"A continuacion se describe el programa:\n"

"1: El texto a la derecha de // es un comentario, el cual se extiende sólo hasta \n"
"el final de la linea. Para comentarios que se extiendan mas de una linea, se \n"
"pueden usar los delimitadores de C, es decir /*...*/. El fichero de cabecera \n"
"iostream.h juega el mismo papel que stdio.h en C. Contiene las definiciones de \n"
"funciones, operadores, constantes, etc., para llevar a cabo operaciones de \n"
"entrada y salida.\n"
"5: El operador de salida ,   envia los caracteres a su derecha a cout que es el \n"
"puntero a la salida estandar (la pantalla). Vemos pues que cout tiene la misma \n"
"funcion que stdout en C. Al simbolo   se llama un manipulador de \n"
"entrada/salida  simplemente envia el caracter nueva linea a la salida. Es mas\n"
"facil de escribir que el caracter nueva linea: \n"
"cout ,   hello, world,   '\n'  \n"
"el cual es igualmente valido. Una ventaja de usar ,   y cout es que evita usar\n"
"formatos en muchas situaciones en que serian necesarios si se usara printf. \n"
"Este es un buen momento para indicar que C++ es un C ampliado con clases y \n"
"otras caracteristicas nuevas  es decir, todo el lenguaje C es tambien parte de\n"
"C++. La mayoria de los ficheros de cabecera, funciones de libreria, etc., de C \n"
"pueden usarse tambien en C++. Por ejemplo, el programa anterior, puede \n"
"escribirse exactamente igual que el primer programa en C de Kernighan y Ritchie,\n"
"es decir:\n"

" 1     /* pp1.cc - primer programa en C++ */\n"
" 2     hashtag include <stdio.h>\n"
" 3     main()\n"
" 4     {\n"
" 5       printf('hello, world\n') \n"
" 6     }\n"
"Notese que la extension del fichero fuente sigue siendo cc, y que el programa es\n"
"compilado sin errores por el compilador de C++. El hecho de que casi todo el \n"
"lenguaje C ANSI es parte de C++ no significa que las ampliaciones de C tengan \n"
"un caracter evolutivo  al contrario, las ampliaciones constituyen un medio \n"
"idoneo para implementar la programacion orientada a objetos (OOP).\n"
"Ejemplo de Clases en C++: Numeros Complejos\n"
"Las variables complejas desempemian un papel basico en matematicas aplicadas y\n"
"muchas ramas de ingenieria. La mayor parte de los compiladores de C/C++ tienen \n"
"funciones y operadores de libreria que tratan los numeros complejos. Hay que \n"
"distinguir entre C y C++. En C, dado que no existen operadores sobrecargados, \n"
"las operaciones basicas con los numeros complejos se llevan a cabo con \n"
"funciones, por ejemplo: c = sum(a,b)  donde a, b y c son numero complejos, en\n"
"vez de utilizar la notacion natural algebraica: c = a + b  \n"
"A continuacion se describe una clase Complejo sencilla en la que se incluyen\n"
"las operaciones aritmeticas mas importantes. Esta clase se puede usar \n"
"eficazmente en aplicaciones practicas. Ademas, proporciona uno de los ejemplos\n"
"mas claros de la potencia y utilidad de la sobrecarga de operadores.\n"
"En primer lugar se describe la clase a continuacion la implementacion de sus\n"
"metodos y luego se ejecuta un pequenio programa de prueba para verificar los \n"
"operadores.\n"
"La Clase Cadena para la manipulacion de cadenas de caracteres\n"
"Para explicar conceptos que no aparecen en el ejemplo anterior sobre la\n"
"sobrecarga de operadores consideremos una clase cadena que permita trabajar\n"
"con cadenas de caracteres de un modo mas directo e intuitivo de lo que permite\n"
"C.\n"
"Por ejemplo, en C no se puede copiar una cadena de caracteres en otra con el\n"
"operador de asignacion, sino que es necesario utilizar la funcion strcpy  \n"
"tampoco se pueden concatenar cadenas con el operador de suma (+), ni se pueden\n"
"comparar con los operadores relacionales (==) y (!=), sino que hay que utilizar \n"
"funciones strcat() y strcmp() respectivamente.\n"
"En primer lugar se describe la clase a continuacion la implementacion de sus\n"
"metodos y luego se ejecuta un pequenio programa de prueba para verificar los \n"
"operadores.",    }

void Tema2()
{
Print"1.2.Solucion de problemas y desarrollo del software.",    
Print"\n",    
Print"La metodologia de la programacion nos marca pautas para la resolucion \n"
"de problemas. Te voy a mostrar los pasos que debes de seguir para resolver \n"
"pequenios y grandes problemas de programacion, al final de este articulo seras \n"
"capaz de analizar problemas y pensar en programacion. Esto es un proceso que no \n"
"se consigue solo con estudiar las pautas sino que, se aprende con la \n"
"experiencia y con la practica.\n"

"La programacion intenta resolver problemas cotidianos, dar solucion a \n"
"actividades que son mecanicas y monotonas, en definitiva, intentar satisfacer\n"
"unos requisitos y hacerlo lo mas eficiente posible. Muchas veces la resolucion \n"
"de un problema es inviable o ineficiente si se realiza mediante un programa. \n"
"Por ello aparecio el concepto de crisis del software, crisis en la cual se \n"
"pensaba que un problema resuelto mediante programacion seria mas eficiente y\n"
"daria mejores resultados. Esta crisis se acentuo cuando se creaban programas \n"
"que no seguian las pautas de desarrollo marcadas por la ingenieria del \n"
"software y se realizaban programas que no satisfacian los requisitos de \n"
"los clientes.\n"

"Voy a hacer que tu, desde el principio, aun siendo programas pequenios y \n"
"simples, pienses como un ingeniero y te  acostumbres a seguir una metodologia\n"
"de programacion adecuada a la ingenieria del software y asi, crear programas \n"
"de mayor calidad. Los programas que iremos realizando seran consecuentes con \n"
"los conocimientos que vayais adquiriendo.\n"

"Para que comprendas mejor la metodologia a seguir a la hora de resolver un \n"
"problema, te lo voy a mostrar con un ejemplo sencillo. Voy a plantearte un \n"
"pequenio problema y vamos a resolverlo siguiendo unas pautas que, a partir \n"
"de ahora deberas de seguir para resolver los problemas.\n"

"Se quiere realizar un programa que obtenga la division de 2 numeros.\n"
"El programa pedira dos numeros al usuario y este devolvera por pantalla\n"
"el resultado.\n"

"1.- ANALISIS. En esta fase, se hara un planteamiento del problema y se vera \n"
"las condiciones y el control de las cosas que hemos de tener en cuenta. No \n"
"debemos pensar ni en el lenguaje ni como lo vamos a resolver, solo debemos \n"
"hacer un analisis completo. En esta fase no debes de olvidar ningun detalle \n"
"por pequenio que sea sino, el resultado final de tu programa no resolvera los\n"
"requisitos pedidos.\n"

"Para el problema anterior, el usuario introducira dos numeros, un numerador \n"
"y un denominador, tenemos que tener en cuenta que si el denominador es cero \n"
"el resultado de la division es infinito, y eso un computador no lo puede \n"
"resolver, por tanto hemos de tener en cuenta esa restriccion. Tambien hay que \n"
"tener en cuenta que los numeros introducidos deben de ser reales, ya que, en\n"
"el resultado nos pueden dar decimales.\n"

"2.-DISENIO. En esta fase pensamos la resolucion de nuestro  problema sin\n"
"pensar en que lenguaje lo voy a resolver. Ya dije que el lenguaje es \n"
"independiente a la resolucion de los  problemas de programacion. Lo que si \n"
"debemos ver es que  medios vamos a utilizar.\n"

"Para nuestro problema, vamos a utilizar tres variables de tipo real, una sera \n"
"el numerador, otra el denominador y una que sera el resultado. Todo lo vamos\n"
"hacer mediante la salida estandar, la peticion de datos y el resultado. \n"
"(Se podria hacer mediante una ventana creada por nosotros pero, todavia no \n"
"tenemos conocimientos por lo que utilizaremos, en principio, siempre la salida\n"
"estandar.\n"

"3.- IMPLEMENTACION. En esta fase es cuando te planteas  en que lenguaje vas a\n"
"solucionar el problema, unas veces es factible c++ otras veces no lo sera,\n"
"esto dependera del tipo  de problema. Despues de elegir el lenguaje \n"
"programamos, teniendo en cuenta el analisis y aplicando el disenio.\n"

"4.-PRUEBAS. Las pruebas es la parte en el que se observa si el programa \n"
"responde como queremos y satisface los requisitos del enunciado del problema.\n"
"Dijimos que el programa devia de responder de la siguiente manera, si el \n"
"denominador es 0 habria que tenerlo en cuenta, en caso contrario debiamos\n"
"de sacar pon pantalla el resultado.",    }
   
void Tema3()
{
Print"1.3.Algoritmos.",    
Print"\n",    
Print"El ordenamiento es una labor comun que realizamos continuamente. Pero \n"
"te has preguntado que es ordenar? No? Es que es algo tan corriente en nuestras\n"
"vidas que no nos detenemos a pensar en ello. Ordenar es simplemente colocar\n"
"informacion de una manera especial basandonos en un criterio de ordenamiento.\n"
"En la computacion el ordenamiento de datos tambien cumple un rol muy \n"
"importante, ya sea como un fin en si o como parte de otros procedimientos mas\n"
"complejos. Se han desarrollado muchas tecnicas en este ambito, cada una con\n"
"caracteristicas especificas, y con ventajas y desventajas sobre las demas.\n"
"Aqui voy a mostrarte algunas de las mas comunes, tratando de hacerlo de\n"
"una manera sencilla y comprensible.\n"
"Antes de comenzar a ver cada algoritmo vamos a ponernos de acuerdo en algunos\n"
"conceptos, para que no haya confusiones:\n"
"Clave: La parte de un registro por la cual se ordena la lista. Por ejemplo,\n"
"una lista de registros con campos nombre, direccion y telefono se puede\n"
"ordenar alfabeticamente de acuerdo a la clave nombre. En este caso los\n"
"campos direccion y telefono no se toman en cuenta en el ordenamiento.\n"
"Criterio de ordenamiento (o de comparacion): EL criterio que utilizamos para\n"
"asignar valores a los registros con base en una o mas claves. De esta\n"
"manera decidimos si un registro es mayor o menor que otro. En el\n"
"pseudocodigo presentado mas adelante simplemente se utilizaran los\n"
"sambolos < y >, para mayor simplicidad.\n"
"Registro: Un grupo de datos que forman la lista. Pueden ser datos atomicos\n"
"(enteros, caracteres, reales, etc.) o grupos de ellos, que en C equivalen\n"
"a las estructuras.\n"
"Cuando se estudian algoritmos de todo tipo, no solo de ordenamiento, es bueno\n"
"tener una forma de evaluarlos antes de pasarlos a codigo, que se base en \n"
"aspectos independientes de la plataforma o el lenguaje. De esta manera \n"
"podremos decidir cual se adapta mejor a los requerimientos de nuestro \n"
"programa. Asi que veamos estos aspectos:\n"
"Estabilidad: Como se comporta con registros que tienen claves iguales.\n"
"Algunos algoritmos mantienen el orden relativo entre estos y otros no. \n"
"Veamos un ejemplo. Si tenemos la siguiente lista de datos (nombre, edad):\n"
"Pedro 19, Juan 23, Felipe 15, Marcela 20, Juan 18, Marcela 17, y la\n"
"ordenamos alfabeticamente por el nombre con un algoritmo estable\n"
"quedaria asi: Felipe 15, Marcela 20, Marcela 17, Juan 23, Juan 18,\n"
"Pedro 19. Un algoritmo no estable podria dejar a Juan 18 antes de\n"
"Juan 23, o a Marcela 20 despues de Marcela 17.\n"
"Tiempo de ejecucion: La complejidad del algoritmo, que no tiene que ver con\n"
"dificultad, sino con rendimiento. Es una funcion independiente de la \n"
"implementacion. Te la voy a explicar brevemente: tenemos que identificar\n"
"una operacion fundamental que realice nuestro algoritmo, que en este caso\n"
"es comparar. Ahora contamos cuantas veces el algoritmo necesita comparar.\n"
"Si en una lista de n terminos realiza n comparaciones la complejidad es\n"
"O(n). (En realidad es un poco mas complicado que eso, pero lo vamos a\n"
"hacer asi: recuerda que dije que te iba a explicar brevemente).\n"
"Algunos ejemplos de complejidades comunes son:\n"
"O(1) : Complejidad constante.\n"
"O(n2) : Complejidad cuadratica.\n"
"O(n log(n)) : Complejidad logaritmica.\n"
"Ahora podemos decir que un algoritmo de complejidad O(n) es mas rapido que\n"
"uno de complejidad O(n2). Otro aspecto a considerar es la diferencia entre\n"
"el peor y el mejor caso. Cada algoritmo se comporta de modo diferente de\n"
"acuerdo a como se le entregue la informacion  por eso es conveniente \n"
"estudiar su comportamiento en casos extremos, como cuando los datos estan\n"
"practicamente ordenados o muy desordenados.\n"
"Requerimientos de memoria: El algoritmo puede necesitar memoria adicional\n"
"para realizar su labor. En general es preferible que no sea asi, pero es\n"
"comun en la programacion tener que sacrificar memoria por rendimiento.\n"
"Hay bastantes otros aspectos que se pueden tener en cuenta, pero nosotros\n"
"nos vamos a quedar con esos.\n"
"Por ultimo estableceremos algunas convenciones sobre el pseudocodigo:\n"
"Vamos a ordenar la lista en forma ascendiente, es decir, de menor a mayor.\n"
"Obviamente es esencialmente lo mismo que hacerlo en forma inversa.\n"
"La forma de intercambiar los elementos depende de la estructura de datos:\n"
"si es un arreglo (dinamico o estatico) es necesario guardar una \n"
"copia del primer elemento, asignarle el segundo al primero y el \n"
"temporal al segundo. La variable temporal es necesaria, porque de\n"
"lo contrario se perderia uno de los elementos. Si la estructura es\n"
"una lista dinamica el procedimiento es parecido, pero se utilizan\n"
"las direcciones de los elementos. En el pseudocodigo se utilizara\n"
"el primer metodo.\n"
"La lista se manejara como un arreglo de C: si tiene TAM elementos, el primer\n"
"elemento es lista[0] y el ultimo es lista[TAM-1]. Esto sera asi para todo\n"
"el pseudocodigo presentado en este articulo.\n"
"Bien, ahora que ya tenemos todo claro vamos a lo que nos interesa...\n"
"pero... como saber cual algoritmo es el que necesitas? cual es EL algoritmo?\n"
"Cada algoritmo se comporta de modo diferente de acuerdo a la cantidad y la\n"
"forma en que se le presenten los datos, entre otras cosas. No existe EL \n"
"algoritmo de ordenamiento. Solo existe el mejor para cada caso particular.\n"
"Debes conocer a fondo el problema que quieres resolver, y aplicar el mas \n"
"adecuado. Aunque hay algunas preguntas que te pueden ayudar a elegir:\n"
"Que grado de orden tendra la informacion que vas a manejar? Si la informacion\n"
"va a estar casi ordenada y no quieres complicarte, un algoritmo sencillo como\n"
"el ordenamiento burbuja sera suficiente. Si por el contrario los datos van \n"
"a estar muy desordenados, un algoritmo poderoso como Quicksort puede ser el\n"
"mas indicado. Y si no puedes hacer una presuncian sobre el grado de orden\n"
"de la informacion, lo mejor sera elegir un algoritmo que se comporte de\n"
"manera similar en cualquiera de estos dos casos extremos.  \n"
"Que cantidad de datos vas a manipular? Si la cantidad es pequenia, no es\n"
"necesario utilizar un algoritmo complejo, y es preferible uno de facil \n"
"implementacion. Una cantidad muy grande puede hacer prohibitivo utilizar \n"
"un algoritmo que requiera de mucha memoria adicional.\n"
"Que tipo de datos quieres ordenar? Algunos algoritmos solo funcionan con\n"
"un tipo especifico de datos (enteros, enteros positivos, etc.) y otros son\n"
"generales, es decir, aplicables a cualquier tipo de dato.\n"
"Que tamanio tienen los registros de tu lista? Algunos algoritmos realizan\n"
"multiples intercambios (burbuja, insercion). Si los registros son de gran \n"
"tamanio estos intercambios son mas lentos.",    }

void Tema4()
{
Print"1.4.Errores comunes de programacion.",    
Print"\n",    
Print"Por supuesto, somos humanos, y por lo tanto nos equivocamos. Los errores \n"
"de programacion pueden clasificarse en varios tipos, dependiendo de la fase en \n"
"que se presenten.\n"
"Errores de sintaxis:son errores en el programa fuente.Pueden deberse a palabras\n"
"reservadas mal escritas, expresiones erroneas o incompletas, variables que no\n "
"existen, etc. Los errores de sintaxis se detectan en la fase de compilacion.\n "
"El compilador, ademas de generar el codigo objeto, nos dara una lista de \n"
"errores de sintaxis. De hecho nos dara solo una cosa o la otra, ya que si hay  \n"
"errores no es posible generar un codigo objeto.\n"
"Avisos: ademas de errores, el compilador puede dar tambien avisos (warnings).\n"
"Los avisos son errores, pero no lo suficientemente graves como para impedir la\n"
"generacion del codigo objeto. No obstante, es importante corregir estos errores\n,"
"ya que ante un aviso el compilador tiene tomar decisiones, y estas no tienen\n"
"por que coincidir con lo que nosotros pretendemos hacer, ya se basan en las \n"
"directivas que los creadores del compilador decidieron durante la creacion del\n" 
"compilador.\n"
"Errores de enlazado: el programa enlazador tambien puede encontrar errores.\n" 
"Normalmente se refieren a funciones que no estan definidas en ninguno de los \n" 
"ficheros objetos ni en las bibliotecas. Puede que hayamos olvidado incluir a\n"
"alguna bibliotec o algun fichero objeto, o puede que hayamos olvidado definir \n" 
"alguna funcion o variable, o lo hayamos hecho mal.\n"
"Errores de ejecucion: incluso despues de obtener un fichero ejecutable, es\n" 
"posible que se produzcan errores. En el caso de los errores de ejecucion \n"
"normalmente no obtendremos mensajes de error, sino que simplemente el programa \n"
"terminara bruscamente. Estos errores son mas dificiles de detectar y corregir.  \n"
"Existen programas auxiliares para buscar estos errores, son los llamados  \n"
"depuradores(debuggers). Estos programas permiten detener la ejecucion de \n"
"nuestros programas,inspeccionar variables y ejecutar nuestro programa paso a  \n"
"paso (instruccion ainstruccion). Esto resulta util para detectar excepciones, \n"
"errores sutiles,y fallos que se presentan dependiendo de circunstancias \n"
"distintas. Errores de disenio: finalmente los errores mas dificiles de corregir \n"
"y prevenir.Si nos hemos equivocado al diseniar nuestro algoritmo, no habra \n" 
"ningun programa que nos pueda ayudar a corregir los nuestros. Contra estos \n" 
"errores solo cabe practicar y pensar.",    }

void Tema5()
{
Print"1.5.Resumen del capitulo.",    
Print"\n",    
Print"C++ es un Lenguaje Orientado a Objetos ataca los siguientes problemas.\n" 
"Tienes tres caracteristicas basicas: Debe estar basado, en objetos, clases y \n"
"capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos \n"
"puntos  mucho menos cumplen los tres. La barrera mas dificil de sortear es \n"
"usualmente la herencia. El concepto de programacion orientada a objetos (OOP) \n"
"no es nuevo, lenguajes clasicos como Smalltalk se basan en ella. Dado que la \n"
"OOP, se basa en la idea natural de la existencia de un mundo lleno de objetos \n"
"y que la resolucion del problema se realiza en terminos de objetos, un lenguaje \n"
"se dice que esta basado en objetos si soporta objetos como una caracteristica \n"
"fundamental del mismo. El elemento fundamental de la OOP, es como su nombre lo\n"
"indica, el objeto. Podemos definir un objeto como un conjunto complejo de \n"
"datos y programas que poseen estructura y forman parte de una organizacion. \n"
"Con la aparicion de C en los anios 80 como Lenguaje de Programacion \n"
"extremadamente popular en todas las plataformas, las ampliaciones \n"
"orientadas a objetos por C han sido una razon fundamental para la atencion\n"
"creciente hacia la propia programacion orientada a objetos y la \n"
"justificacion del mayor empleo de C++, sobre Smalltalk dentro de la \n"
"comunidad de programacion C++, la ampliacion orientada a objetos de Bjarne\n"
"Stroustrup para C, han ganado una pronta militancia en el campo de las\n"
"estaciones de trabajo y mini computadoras, y mas recientemente en las \n"
"realizaciones de DOS de Microsoft y OS/2 de IBM. ",    }

void Tema6()
{
Print"1.6.Apendice del capituo: Hardware de computacion y conceptos de almacenamiento.",    
Print"\n",    
Print"En computacion, termino ingles que hace referencia a cualquier \n"
"componente fisico tecnologico, que trabaja o interactua de algun modo con la\n" 
"computadora. No solo incluye elementos internos como el disco duro, CD-ROM, \n"
"disquetera, sino que tambien hace referencia al cableado, circuitos, gabinete, \n"
"etc. E incluso hace referencia a elementos externos como la impresora, el \n"
"mouse, el teclado, el monitor y demas perifericos.\n"

"El hardware contrasta con el software, que es intangible y le da logica al\n" 
"hardware (ademas de ejecutarse dentro de este).\n"

"El hardware no es frecuentemente cambiado, en tanto el software puede ser\n" 
"creado, borrado y modificado sencillamente. (Excepto el firmware, que es un \n"
"tipo de software que raramente es alterado).\n"

"Hardware tipico de una computadora\n"

"El tipico hardware que compone una computadora personal es el siguiente:\n"

"o Su chasis o gabinete\n"
"o La placa madre, que contiene: CPU, cooler, RAM, BIOS, buses (PCI, USB,\n" 
"  HyperTransport, CSI, AGP, etc)\n" 
"o Fuente de alimentacion\n"
"o Controladores de almacenamiento: IDE, SATA, SCSI\n"
"o Controlador de video\n"
"o Controladores del bus de la computadora (paralelo, serial, USB, FireWire),\n" 
"  para conectarla a perifericos\n"
"o Almacenamiento: disco duro, CD-ROM, disquetera, ZIP driver y otros\n"
"o Tarjeta de sonido\n"
"o Redes: modem y tarjeta de red\n"

"El hardware tambien puede incluir componentes externos como:\n"
"o Teclado\n"
"o Mouse, trackballs\n"
"o Joystick, gamepad, volante\n"
"o Escaner, webcam\n"
"o Microfono, parlante\n"
"o Monitor (LCD, o CRT)\n"
"o Impresora\n"

"Distintas clasificaciones del hardware\n"

"Clasificacion por la funcionalidad del hardware\n"

"* Hardware basico: dispositivos necesarios para iniciar la computadora. Los\n" 
"  mas basicos son la placa madre, la fuente de alimentacion, el microprocesador\n" 
"  y la memoria. Se podrian incluir componentes como monitor y teclado, aunque \n"
"  no son estrictamente basicos.\n"

"* Hardware complementario: aquellos dispositivos que complementan a la\n" 
"  computadora, pero que no son fundamentales para su funcionamiento, como ser,\n"
"  impresora, unidades de almacenamiento, etc.\n"

"Clasificacion por la ubicacion del hardware\n"

"* Perifericos (componentes externos): dispositivos externos a la computadora.\n" 
 " Ver periferico\n"
"* Componentes internos: dispositivos que son internos al gabinete de la \n"
 " computadora\n"
"* Puertos: conectan los perifericos con los componentes internos\n"

"Clasificacion por el flujo de informacion del hardware\n"

"* Perifericos de salida: monitor, impresora, etc.\n"
"* Perifericos de entrada: teclado, mouse, etc.\n"
"* Perifericos/dispositivos de almacenamiento: disco duro, memorias, etc.\n"
"* Perifericos de comunicacion: modem, puertos, etc.\n"
"* Dispositivos de procesamiento: CPU, microprocesador, placa madre, etc.",    }

void Tema7()
{char respuesta
int c, correctas
Print"\t\tExamende diagnostico",    
Print"\n",    
Print" Instrucciones:Coloque la letra de la respuesta correcta en la casilla\n"
"de respuesta y depues oprina enter para desplegar la siguiente pregunta.",    
Print"\n",    system("PAUSE") system("CLS")
Print"\t\tExamende diagnostico",    
Print"1.En que anio se comenso a desarrollar c++.\n   a)1980   b)1990   c)1985",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"2.Que se usa para extender un comentario mas de una linea.\n   a)//   b)/*...*/   c),  ",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"3.Que significa (!=).\n   a)igual   b)diferente   c)mayor igual",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"4.En que fase de la resolucion de problemas se hace el planteamiento.\n   a)disenio   b)analisis   c)pruebas",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"5.Fase de la resolucion de problemas en donde te lanteas que lenguaje\nvas a utilizar.\n   a)implementacion   b)analisis   c)disenio",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"6.En el codigo cual de las siguientes opciones elegirias para ingesar\ndatos.\n   a)read   b)cout   c)cin",    
Print"Respuesta:"
Read respuesta
if(respuesta=='c')
{ correctas=correctas+1
}
Print"7.Que significa char.\n   a)charro   b)decimal   c)caracter",    
Print"Respuesta:"
Read respuesta
if(respuesta=='c')
{ correctas=correctas+1
}
Print"8.Que hace un algoritmo estable.\n   a)acomoda   b)acomoda en orden   c)ordena",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"9.Cual de las siguientes opciones es un ejemplo de comlpejidad de\nalgoritmo.\n   a)O(n2)   b)O(nl)   c)P(n1)",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"10.Cual de las siguientes opciones es un periferico de entrada.\n   a)mouse   b)CPU   c)monitor",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
c=(correctas*10)
Print"\t\tEvaluacion del examen",    
Print"\n",    
Print"Calificacion=",  c,    
if(c>=70)
{Print"APROBADO",    
}
else{Print"REPROBADO",    
}}

int continuar(char decision)
{char respuesta
int correctas, c
if(decision=='e')
{Print"\t\tExamende diagnostico",    
Print"\n",    
Print" Instrucciones:Coloque la letra de la respuesta correcta en la casilla\n"
"de respuesta y depues oprina enter para desplegar la siguiente pregunta.",    
Print"\n",    
system("PAUSE") system("CLS")
Print"\t\tExamende diagnostico",    
Print"1.En que anio se comenso a desarrollar c++.\n   a)1980   b)1990   c)1985",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"2.Que se usa para extender un comentario mas de una linea.\n   a)//   b)/*...*/   c),  ",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"3.Que significa (!=).\n   a)igual   b)diferente   c)mayor igual",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"4.En que fase de la resolucion de problemas se hace el planteamiento.\n   a)disenio   b)analisis   c)pruebas",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"5.Fase de la resolucion de problemas en donde te lanteas que lenguaje\nvas a utilizar.\n   a)implementacion   b)analisis   c)disenio",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"6.En el codigo cual de las siguientes opciones elegirias para ingesar\ndatos.\n   a)read   b)cout   c)cin",    
Print"Respuesta:"
Read respuesta
if(respuesta=='c')
{ correctas=correctas+1
}
Print"7.Que significa char.\n   a)charro   b)decimal   c)caracter",    
Print"Respuesta:"
Read respuesta
if(respuesta=='c')
{ correctas=correctas+1
}
Print"8.Que hace un algoritmo estable.\n   a)acomoda   b)acomoda en orden   c)ordena",    
Print"Respuesta:"
Read respuesta
if(respuesta=='b')
{ correctas=correctas+1
}
Print"9.Cual de las siguientes opciones es un ejemplo de comlpejidad de\nalgoritmo.\n   a)O(n2)   b)O(nl)   c)P(n1)",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
Print"10.Cual de las siguientes opciones es un periferico de entrada.\n   a)mouse   b)CPU   c)monitor",    
Print"Respuesta:"
Read respuesta
if(respuesta=='a')
{ correctas=correctas+1
}
c=(correctas*10)
Print"\t\tEvaluacion del examen",    
Print"\n",    
Print"Calificacion=",  c,    
if(c>=70)
{Print"APROBADO",    
}
else{Print"REPROBADO",    
}
system("PAUSE") system("CLS")
}}

No hay comentarios:

Publicar un comentario