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