INTRODUCION
tema fundamental en el diseño de programas o soluciones. Por la cual, se debe tener buenas bases que le sirvan para poder crear de manera fácil y rápida sus programas.
Un algoritmo es una descripción de los pasos básicos a seguir para cumplir determinada tarea”,….., “Para que una computadora realice una tarea es necesario definir previamente un algoritmo
¿QUÉ ES ALGORITMO?
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico
jueves, 3 de junio de 2010
caracteristica de los algoritmos
CARACTERÍSTICAS DE LOS ALGORITMOS
Las características fundamentales que debe cumplir un algoritmo son:
PRECISIÓN
Indica el orden de realización de cada paso dentro del proceso.
DEFINICION
Indica la exactitud y consistencia de los pasos descritos en el proceso, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado.
FINITUD
Indica el número razonable de pasos, los cuales deben conllevar a la finalización del proceso y producir un resultado en un tiempo finito
Al diseñar un algoritmo se debe tener presente las características de precisión, definición y finitud. Visualicemos estas características a través del siguiente ejemplo: Algoritmo para hacer una torta
Entrada: Harina de trigo, mantequilla, huevos, sal, azúcar
Proceso: 1.- Unir la mantequilla con el azúcar
2.- Batir hasta lograr consistencia cremosa
3.- Agregar harina de trigo, huevos, sal y azúcar
4.- Batir hasta que esponje
5.- Precalentar el horno, en 250 °, y en mantequillar tortera
6.- Una vez logre la consistencia de esponjado, colocar en la tortera
7.- Introducir en el horno por espacio de 45 minutos
Salida: Torta
Ejercicio: Realice un algoritmo para la elaboración de pan
Siguiendo el ejemplo recuerde determinar las instrucciones de Entrada, Proceso y Salida
Instrucción o sentencia Una instrucción esta compuesta por uno o más comandos (acción), datos, símbolos, variables o constantes y expresiones, que en conjunto representan una instrucción o sentencia.
Ejemplo de instrucción: En la construcción de los programas se utiliza una instrucción por línea. Así mismo, se utiliza la alineación de aquellas instrucciones dentro de las estructuras que las contienen de manera ordenada que permita visualizar el inicio y fin de cada bloque de instrucciones.
Si ASISTIO =”SI” Entonces
Leer Sueldo,
Asignar Sueldo = Sueldo + HoraExtra
Fin Si
Donde:
SI Representa una estructura condicional utilizada para establecer preguntas o programar ciertas condiciones
ASISTIO Nombre de una Variable lógica que puede obtener sólo dos valores “SI” o “NO”. En el ejemplo se programa la condición de la variables cuando es “SI”
ENTONCES Parte de la instrucción o estructura condicional
LEER SUELDO Instrucción utilizando el comando cuya acción es la lectura de un campo o dato
Asignar SUELDO= SUELDO+HORAEXTRA Instrucción de asignación, permite asignar o calcular el valor que adquirirá una variable
Fin SI Cierra la estructura condicional Si –Entonces –Fin Si
Comandos o palabras reservadas
Los comandos no son más que acciones que debe interpretar y ejecutar el computador. Cada comando conserva una sintaxis determinada, es decir la forma de utilizarlo. Los lenguajes computacionales tienen en su repertorio comandos dirigidos al procesamiento de archivos y datos, entre ellos: Leer, Calcular, Asignar, Clasificar, Imprimir.
parte de un algoritmo
PARTES DE UN ALGORITMO
PARTES DE UN ALGORITMO: Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir:
ENTRADA
Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados.
PROCESO
Pasos necesarios para obtener la solución del problema o la situación planteada.
SALIDA
Resultados arrojados por el proceso como solución.
Ejemplo ;
ENTRADA
Valores de de las variables A y B.
PROCESO
Asignar a la variable Suma, el valor de A mas el valor de B.
SALIDA
impresión del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.
PARTES DE UN ALGORITMO: Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir:
ENTRADA
Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados.
PROCESO
Pasos necesarios para obtener la solución del problema o la situación planteada.
SALIDA
Resultados arrojados por el proceso como solución.
Ejemplo ;
ENTRADA
Valores de de las variables A y B.
PROCESO
Asignar a la variable Suma, el valor de A mas el valor de B.
SALIDA
impresión del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.
constantes y variables
CONSTANTES Y VARIABLES
Son espacios de memoria creados para contener valores que de acuerdo a su naturaleza deseen mantenerse (Constantes) o que puedan variar (Variables).
Constante;
Es un dato que permanece con un valor, sin cambios, es decir constante, a lo largo del desarrollo del algoritmo o a lo largo de la ejecución del programa.
Se utiliza cuando necesitamos que el valor de determinada variable se mantenga durante la ejecución del programa o hasta tanto se requiera su cambio.
Variable;
Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo o en el transcurso de la ejecución del programa.
Una variable descrita o declarada de un tipo determinado, sólo podrá contener, valores de ese tipo. Una variable declarada numérica entera, no podrá contener números reales. Se utiliza cuando el dato que contiene sufrirá cambios o variará en la medida que cambien los valores que maneje.
Los algoritmos se Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo) por ejemplo;
Escribe un algoritmo para distinguir si es mayor o menor de edad
INICIO
Edad: Entero
ESCRIBA “cual es tu edad?”
Lea Edad
SI Edad >=18 entonces
ESCRIBA “Eres mayor de Edad”
FINSI
ESCRIBA “fin del algoritmo”
FIN
Sumar dos números
Inicio
Declarar variable Suma=0
Leer Primer Número
Asignarlo a la variable A
Leer Segundo Número
Asignarlo a la variable B
Asignar el valor de A + B a la variable Suma
Suma= A + B
imprimir valor de Suma
Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.
Simples:
Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:
Pseudocódigo: Diagrama de flujo
si entonces
introducion (es)
si no
introducion (es)
fin si
Donde:
Si:Indica el comando de comparación
Condición : Indica la condición a evaluar
Entonces : Precede a las acciones a realizar cuando se cumple la condición
Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición
si no :Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.
Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:
si entonces
introducion (es)
si no
si entonces
introducion (es)
si no
.. variable condiciones
(Mientras). Una de las estructuras de repetición empleada en la programacion de algoritmos. While permite al programador especificar las veces que se repita una acción (una o más sentencias de programacion) mientras una condición se mantenga verdadera.
Mientras condicion hacer
instruciones
Fin mientras
Mientras la condición se mantenga verdadera, el bloque de instrucciones dentro de las llaves se ejecutará "x" cantidad de veces. Es necesario que alguna vez la condición se haga falsa, pues de lo contrario se entraría en un ciclo infinito de repeticiones (bucle infinito) y el programa se consideraría bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while, se ejecute alguna acción que en algún momento haga que la condición
miércoles, 2 de junio de 2010
unidad 1, lenguaje de programacion c++
COMPOSICION
• Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer algún cálculo), donde la función principal debe ser llamada main.
La composición general de un programa en C++ es:
• directivas de preprocesamiento.
• declaración globales.
• función main.
• funciones definidas por el usuario.
• comentarios para entender el funcionamiento del programa.
DIRECTIVAS
• Las directivas de preprocesamiento son definidas para que el compilador realice algo antes de compilar el programa (revisar si la sintaxis es correcta y generar un código ejecutable por la computadora), como el incluir funciones de alguna biblioteca conocida
• En particular, en C la directiva para incluir bibliotecas es como las siguientes:
Ejemplos:
• #include
Esta directiva permitirá utilizar la función de lectura cin y la función de escritura cout propias de C++.
• #include
Esta directiva permitirá utilizar las funciones de lectura y escritura propias de C.
• Estas directivas también funcionan con C++, aunque existen algunos compiladores que no las soportan en cuyo caso es necesario hacer uso de los namespaces.
• Un namespace es una declaración de región. El propósito de estos es localizar el nombre de identificadores para evitar colisiones.
• Para tener compatibilidad, cuando un programa en C++ incluye una librería de C, haremos uso del namespace.
Ejemplo:
• En C tenemos #include
• Con el respectivo en C++ #include
using namespace std;
DEGLARACIONES GLOBALES
• Las declaraciones globales son definiciones de variables o constantes que serán utilizadas por cualquiera de todas las funciones definidas en el programa.
• La sintaxis para la declaración de una variable es: Tipo var1, var2,..., var3; o bien
Tipo var1= valor, var2,..., var3;
FUNCION MAIN
• La función main( ), es obligatoria en cada programa C, C++.
• Indica el comienzo del programa y requiere los paréntesis ( ) a continuación de main( ).
FUNCION DEFINICION DEL USUARIO
• La definición de una función se realiza escribiendo primero el tipo del valor de retorno de la función, después el nombre de la función, posteriormente entre paréntesis las variables que utilizará dicha función (parámetros) y finalmente las instrucciones de la función. Ejemplos:
double promedio( int a, int b, int c)
{
return (a + b + c ) / 3.0;
}
Declara a la función promedio, la cual recibe tres valores enteros y calcula y regresa el promedio de ellos.
COMENTARIOS
Los comentarios pueden escribirse utilizando alguna de las siguientes formas:
1. comentando en la misma línea, utiliza //, ejemplo
int edad; // la edad se utilizará como un valor entero.
2. comentando entre varias líneas, utiliza /* */, ejemplo:
/* La siguiente función promedio recibe tres valores enteros
y calcula y regresa el promedio de los tres a través de un valor real */
TIPOS DE DATOS
Los tipos de datos que maneja C++ son :
• Enteros
Dentro de los enteros están los tipos: short, int, long, los cuales varían en rango de acuerdo al compilador que se utilice, siendo long rango mayor y short el de menor.
• Flotantes Dentro de los flotantes C++ tiene los tipos: float, double y long double donde al igual que los enteros varía el rango de cada uno de acuerdo al compilador que se utilice. De igual forma el float es el de menor rango siendo long double el de rango mayor
• Caracteres Se utiliza el tipo char. Para representar un carácter en C++ se utilizan apóstrofes.
Ejemplos: ‘a’, ‘b’ , ‘5’
Para representar una cadena de caracteres se utilizan las comillas.
Ejemplo: “soy una cadena
ESTATUS DE LECTURA
• El archivo de cabecera iostream.h de la biblioteca de C++ proporciona un flujo de entrada estándar cin y un operador de extracción >>, para extraer valores del flujo y almacenarlos en variables.
Sintaxis del estatuto cin
cin >> Lista de variables;
donde Lista de variables puede ser una o más variables separadas por >>
Ejemplos:
cin >> a >> b; // estamos esperando la entrada de dos valores del tipo
// definido en la declaración de a y b.
cin >> num; // estamos esperando la entrada de un solo valor.
cin >> Precio_venta // estamos esperando la entrada de un solo valor
// del tipo definido en la declaración de
// Precio_venta
ESTATUS DE ESCRITURA
• El archivo de cabecera iostream.h de la biblioteca de C++ proporciona un flujo de salida estándar cout y un operador de extracción <<, que normalmente se manda a la pantalla del usuario.
Sintaxis del estatuto cout
cout << Lista; donde Lista puede ser variables, valores constantes o expresiones separadas por <<
Ejemplos:
cout << "Dame el numero "; // estamos desplegando el mensaje // en pantalla.
cout << "El resultado es " << resul; // estamos desplegando el // mensaje y el valor de la // variable resul.
• Los operadores de extracción e inserción, >> y <<, apuntan en la dirección del flujo de datos.
• Recordemos que para poder utilizar el estatuto cin y cout se requiere la directiva #include.
• Existen caracteres especiales que pueden ser usados con el cout dentro de comillas. Entre ellos están:
\ n realiza un cambio de línea equivalente a usar endl.
\ t tabulador.
\ a sonido de la campana.
\ “ comilla doble.
\ ‘ comilla simple.
Ejemplos:
cout << "Nombre " << "\t" ; // despliega el mensaje Nombre, realiza un // tab ahí quedará el cursor
cout << "El resultado es " << resul << endl; // despliega el letrero, el // valor de la variable resul // y brinca a la siguiente // línea donde quedara el // cursor.
DECLARACIONES
• La declaración de una variable es un estatuto que proporciona información de la variable al compilador de C++.
• La sintaxis para la declaración de una variable es: tipo variable
tipo.- es el nombre de un tipo de dato conocido por C++.
variable.- es un identificador (nombre) válido en C++.
RECLAS PARA NOMBRES DE VARIABLES
• Deben empezar con letra o underscore
• Pueden contener letras, números y underscore
• Las letra mayúsculas y minúsculas son diferentes para C++
• Es importante declarar las variables antes de utilizarlas. Se puede declarar una variable en dos lugares dentro de un programa:
a). Al principio de un archivo o bloque de código.
b). En el punto de utilización.
• Las variables se pueden inicializar a la vez que se declaran, o bien, inicializarse después de la declaración. El primer método es probablemente el mejor, ya que se combina la definición de la variable con la asignación de su valor inicial.
DECLARACIONES O DEFINICIONES
• La diferencia entre declaración y definición es sutil.
• Una declaración introduce un nombre de un objeto o de una variable y asocia un tipo con la variable/objeto.
• Una definición es una declaración que asigna simultáneamente memoria al objeto/variable.
Ejemplos:
int x; // declara el nombre de la variable x de tipo entero.
char var; // declara var de tipo carácter.
int i; // declara el nombre de la variable i de tipo entero.
int i = 0; // define i inicializa la variable i entera a cero.
Ejemplos:
• int edad;
Esta declaración indica que la variable edad definida como un valor entero puede ser utilizada en cualquier función.
• double venta = 0.0; Esta declaración presenta la declaración de una variable como valor doble a la cual se le da un valor inicial y puede ser usada en cualesquier función.
• char nombre[30]; Esta declaración es para declarar una variable de tipo cadena de caracteres.
FUNCIONES DEFINIDAS POR EL USUARIO
• Un programa en C++ se forma por una colección de funciones.
• Todos los programas se construyen a partir de una o más funciones que se integran para crear una aplicación.
• Todas las funciones contienen uno o más estatutos C++ y se crean generalmente para realizar una única tarea.
• La definición de una función se realiza escribiendo primero el tipo del valor de retorno de la función, después el nombre de la función, posteriormente entre paréntesis las variables que utilizará dicha función (parámetros) y finalmente las instrucciones de la función.
• Las funciones definidas por el usuario se invocan por su nombre y los parámetros opcionales que se puedan tener.
• Todas las funciones tienen nombre y una lista de valores que recibe. Se puede asignar cualquier nombre a la función, pero normalmente se procura que dicho nombre describa el propósito de la función.
• Una declaración de función indica al compilador el nombre de la función que se está invocando en el programa. Si la función no se defina, el compilador informa de un error.
• Por ejemplo:
double promedio( int a, int b, int c)
{
return (a + b + c ) / 3.0;
}
Declara a la función promedio, la cual recibe tres valores enteros y calcula y regresa el promedio de ellos.
int suma( int a, int b)
{
return (a + b);
}
Declara a la función suma, la cual recibe dos valores enteros y calcula y regresa la suma de ellos.
• Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer algún cálculo), donde la función principal debe ser llamada main.
La composición general de un programa en C++ es:
• directivas de preprocesamiento.
• declaración globales.
• función main.
• funciones definidas por el usuario.
• comentarios para entender el funcionamiento del programa.
DIRECTIVAS
• Las directivas de preprocesamiento son definidas para que el compilador realice algo antes de compilar el programa (revisar si la sintaxis es correcta y generar un código ejecutable por la computadora), como el incluir funciones de alguna biblioteca conocida
• En particular, en C la directiva para incluir bibliotecas es como las siguientes:
Ejemplos:
• #include
Esta directiva permitirá utilizar la función de lectura cin y la función de escritura cout propias de C++.
• #include
Esta directiva permitirá utilizar las funciones de lectura y escritura propias de C.
• Estas directivas también funcionan con C++, aunque existen algunos compiladores que no las soportan en cuyo caso es necesario hacer uso de los namespaces.
• Un namespace es una declaración de región. El propósito de estos es localizar el nombre de identificadores para evitar colisiones.
• Para tener compatibilidad, cuando un programa en C++ incluye una librería de C, haremos uso del namespace.
Ejemplo:
• En C tenemos #include
• Con el respectivo en C++ #include
using namespace std;
Unidad1
View more presentations from JHONNY.
• Las declaraciones globales son definiciones de variables o constantes que serán utilizadas por cualquiera de todas las funciones definidas en el programa.
• La sintaxis para la declaración de una variable es: Tipo var1, var2,..., var3; o bien
Tipo var1= valor, var2,..., var3;
FUNCION MAIN
• La función main( ), es obligatoria en cada programa C, C++.
• Indica el comienzo del programa y requiere los paréntesis ( ) a continuación de main( ).
FUNCION DEFINICION DEL USUARIO
• La definición de una función se realiza escribiendo primero el tipo del valor de retorno de la función, después el nombre de la función, posteriormente entre paréntesis las variables que utilizará dicha función (parámetros) y finalmente las instrucciones de la función. Ejemplos:
double promedio( int a, int b, int c)
{
return (a + b + c ) / 3.0;
}
Declara a la función promedio, la cual recibe tres valores enteros y calcula y regresa el promedio de ellos.
COMENTARIOS
Los comentarios pueden escribirse utilizando alguna de las siguientes formas:
1. comentando en la misma línea, utiliza //, ejemplo
int edad; // la edad se utilizará como un valor entero.
2. comentando entre varias líneas, utiliza /* */, ejemplo:
/* La siguiente función promedio recibe tres valores enteros
y calcula y regresa el promedio de los tres a través de un valor real */
TIPOS DE DATOS
Los tipos de datos que maneja C++ son :
• Enteros
Dentro de los enteros están los tipos: short, int, long, los cuales varían en rango de acuerdo al compilador que se utilice, siendo long rango mayor y short el de menor.
• Flotantes Dentro de los flotantes C++ tiene los tipos: float, double y long double donde al igual que los enteros varía el rango de cada uno de acuerdo al compilador que se utilice. De igual forma el float es el de menor rango siendo long double el de rango mayor
• Caracteres Se utiliza el tipo char. Para representar un carácter en C++ se utilizan apóstrofes.
Ejemplos: ‘a’, ‘b’ , ‘5’
Para representar una cadena de caracteres se utilizan las comillas.
Ejemplo: “soy una cadena
ESTATUS DE LECTURA
• El archivo de cabecera iostream.h de la biblioteca de C++ proporciona un flujo de entrada estándar cin y un operador de extracción >>, para extraer valores del flujo y almacenarlos en variables.
Sintaxis del estatuto cin
cin >> Lista de variables;
donde Lista de variables puede ser una o más variables separadas por >>
Ejemplos:
cin >> a >> b; // estamos esperando la entrada de dos valores del tipo
// definido en la declaración de a y b.
cin >> num; // estamos esperando la entrada de un solo valor.
cin >> Precio_venta // estamos esperando la entrada de un solo valor
// del tipo definido en la declaración de
// Precio_venta
ESTATUS DE ESCRITURA
• El archivo de cabecera iostream.h de la biblioteca de C++ proporciona un flujo de salida estándar cout y un operador de extracción <<, que normalmente se manda a la pantalla del usuario.
Sintaxis del estatuto cout
cout << Lista; donde Lista puede ser variables, valores constantes o expresiones separadas por <<
Ejemplos:
cout << "Dame el numero "; // estamos desplegando el mensaje // en pantalla.
cout << "El resultado es " << resul; // estamos desplegando el // mensaje y el valor de la // variable resul.
• Los operadores de extracción e inserción, >> y <<, apuntan en la dirección del flujo de datos.
• Recordemos que para poder utilizar el estatuto cin y cout se requiere la directiva #include
• Existen caracteres especiales que pueden ser usados con el cout dentro de comillas. Entre ellos están:
\ n realiza un cambio de línea equivalente a usar endl.
\ t tabulador.
\ a sonido de la campana.
\ “ comilla doble.
\ ‘ comilla simple.
Ejemplos:
cout << "Nombre " << "\t" ; // despliega el mensaje Nombre, realiza un // tab ahí quedará el cursor
cout << "El resultado es " << resul << endl; // despliega el letrero, el // valor de la variable resul // y brinca a la siguiente // línea donde quedara el // cursor.
DECLARACIONES
• La declaración de una variable es un estatuto que proporciona información de la variable al compilador de C++.
• La sintaxis para la declaración de una variable es: tipo variable
tipo.- es el nombre de un tipo de dato conocido por C++.
variable.- es un identificador (nombre) válido en C++.
RECLAS PARA NOMBRES DE VARIABLES
• Deben empezar con letra o underscore
• Pueden contener letras, números y underscore
• Las letra mayúsculas y minúsculas son diferentes para C++
• Es importante declarar las variables antes de utilizarlas. Se puede declarar una variable en dos lugares dentro de un programa:
a). Al principio de un archivo o bloque de código.
b). En el punto de utilización.
• Las variables se pueden inicializar a la vez que se declaran, o bien, inicializarse después de la declaración. El primer método es probablemente el mejor, ya que se combina la definición de la variable con la asignación de su valor inicial.
DECLARACIONES O DEFINICIONES
• La diferencia entre declaración y definición es sutil.
• Una declaración introduce un nombre de un objeto o de una variable y asocia un tipo con la variable/objeto.
• Una definición es una declaración que asigna simultáneamente memoria al objeto/variable.
Ejemplos:
int x; // declara el nombre de la variable x de tipo entero.
char var; // declara var de tipo carácter.
int i; // declara el nombre de la variable i de tipo entero.
int i = 0; // define i inicializa la variable i entera a cero.
Ejemplos:
• int edad;
Esta declaración indica que la variable edad definida como un valor entero puede ser utilizada en cualquier función.
• double venta = 0.0; Esta declaración presenta la declaración de una variable como valor doble a la cual se le da un valor inicial y puede ser usada en cualesquier función.
• char nombre[30]; Esta declaración es para declarar una variable de tipo cadena de caracteres.
FUNCIONES DEFINIDAS POR EL USUARIO
• Un programa en C++ se forma por una colección de funciones.
• Todos los programas se construyen a partir de una o más funciones que se integran para crear una aplicación.
• Todas las funciones contienen uno o más estatutos C++ y se crean generalmente para realizar una única tarea.
• La definición de una función se realiza escribiendo primero el tipo del valor de retorno de la función, después el nombre de la función, posteriormente entre paréntesis las variables que utilizará dicha función (parámetros) y finalmente las instrucciones de la función.
• Las funciones definidas por el usuario se invocan por su nombre y los parámetros opcionales que se puedan tener.
• Todas las funciones tienen nombre y una lista de valores que recibe. Se puede asignar cualquier nombre a la función, pero normalmente se procura que dicho nombre describa el propósito de la función.
• Una declaración de función indica al compilador el nombre de la función que se está invocando en el programa. Si la función no se defina, el compilador informa de un error.
• Por ejemplo:
double promedio( int a, int b, int c)
{
return (a + b + c ) / 3.0;
}
Declara a la función promedio, la cual recibe tres valores enteros y calcula y regresa el promedio de ellos.
int suma( int a, int b)
{
return (a + b);
}
Declara a la función suma, la cual recibe dos valores enteros y calcula y regresa la suma de ellos.
Unidad 2, lenguaje de programacion C++
INSTALACION COPILADOR
• Una vez creado un programa en C++, se debe ejecutar. ¿Cómo realizar esta tarea?. Los pasos a dar dependerán del compilador C++ que utilice. sin embargo, en general serán similares a los siguientes pasos:
• Utilizar un editor de texto para escribir el programa y grabarlo en un archivo.
• Compilar el código fuente.
• Enlazar el código objeto con las bibliotecas correspondientes.
Para crear un programa se utilizan las siguientes etapas:
• Definir su programa.
• Definir directivas del procesador.
• Definición de declaraciones globales.
• Crear main( ).
• Crear el cuerpo del programa.
• Crear sus propias funciones definidas por el usuario.
• Compilar, enlazar, ejecutar, y comprobar su programa.
• Utilizar comentarios.
PROCESO DE COPILACIN DE UN PROGRAMA
• En esta etapa se traduce el código fuente escrito en lenguaje C++ a código máquina (entendible por la computadora).
• El programa que realiza esta traducción se llama compilador.
• Cada compilador se construye para un determinado lenguaje de programación por ejemplo C++.
• Cada lenguaje de programación tiene unas reglas especiales para la construcción de programación que se denomina sintaxis.
• El compilador lee el programa del archivo de texto creado y comprueba que el programa sigue las reglas de sintaxis del lenguaje de programación.
• Cuando se compila su programa, el compilador traduce el código fuente C++ en un código máquina (código objeto).
• El código objeto consta de instrucciones máquina e información de cómo cargar el programa en memoria antes de su ejecución
• Si el compilador encuentra errores, los presentará en la pantalla, una vez corregidos los errores con ayuda del editor se vuelve a compilar sucesivamente hasta que no se produzcan errores.
• El código objeto que se obtiene se almacena en un archivo independiente, normalmente con al extensión .obj
• El archivo objeto contiene sólo la traducción del código fuente, esto no es suficiente para ejecutar realmente el programa.
• Es necesario incluir los archivos de biblioteca.
• Normalmente un programa consta de diferentes unidades o partes de programa que se han compilado independientemente. Por consiguiente, puede haber varios archivos objetos.
• Un programa especial llamado enlazador toma el archivo objeto y las partes necesarias de la biblioteca y construye un archivo ejecutable. Los archivos ejecutables tienen un nombre con la extensión .exe
• Este archivo ejecutable contiene todo el código de máquina necesario para ejecutar el programa.
OPERACIONES BASICA
• Los programas en C++ constan de datos, sentencias de programas y expresiones.
• La mayoría de los programas en C++ realizan operaciones básicas, a través de un conjunto potente de operadores, que usándolos correctamente aumenta la expresividad y eficiencia del lenguaje.
Operador de Asignación
• El operador = asigna el valor de la expresión derecha a la variable situada a su izquierda.
Sintaxis:
Variable = valor;
donde valor puede ser una constante, una variable o una expresión.
• En C++ es válido usar el siguiente operador de asignación:
a = b = 7;
el cual se evalúa de izquierda a derecha.
Ejemplo:
x = 125; promedio = 75.8; opción = ‘s’;
OPERACIONES ARIDMETICA
• El operador / funciona de diferente manera si trabaja con datos de tipo entero o de tipo flotante. Con datos de tipo flotante, funciona de la manera tradicional; pero al realizarse una división entre dos números enteros, el operador / regresa el cociente de la división entera; es decir, regresa la parte entera del resultado (si hay fracción la elimina).
Por ejemplo:
2/3 da como resultado 0
pero
2.0/3.0 da como resultado 0.66666
• Si hay operandos de diferentes tipos de datos, se convierten al tipo de datos más amplio y el tipo del valor resultante es del tipo más amplio. Por ejemplo, si hay enteros y flotantes, todos los números se convierten a flotantes y el resultado se calcula como flotante.
por ejemplo:
4/3.0 da como resultado 1.33333
• El operador % calcula el residuo de la división entera y sólo existe para datos de tipo entero.
por ejemplo:
10%3 da como resultado 1
• En C++ existen también los siguientes operadores aritméticos:
++ incremento
-- decremento
Es decir:
x++ ó ++x es equivalente a x = x+1
x- - ó - -x es equivalente a x = x - 1
• Estos operadores son unitarios, es decir, trabajan con un solo operando y solamente se pueden utilizar con variables de tipo entero
Los operadores se pueden utilizar antes o después del nombre de la variable y funcionan de diferente manera:
• Si se ponen antes, primero se realiza la operación (incremento o decremento) y luego se utiliza el valor de la variable en la expresión en la que se encuentre.
• Si se pone después, primero se utiliza el valor de la variable en la expresión y luego se lleva a cabo la operación (incremento o decremento).
Por ejemplo:
Supón que a = 10 y c = 4
La operación v = a * c++; v toma el valor de 40 y c queda con el valor de 5 La operación v = a * ++c; v toma el valor de 50 y c queda con el valor de 5
FUNCIONES MATEMATICAS PREDEFINIDAS
• C++ contiene una serie de funciones matemáticas que puedes utilizar en tus programas, algunas de las funciones matemáticas disponibles son:
• Matemáticas.
• Trigonométricas.
• Logarítmicas.
• Exponenciales.
FUNCIONES MATEMATICAS
• Algunas de las funciones matemáticas usuales en la biblioteca estándar son:
abs(x) obtiene el valor absoluto de x, x debe ser entero
sqrt(x) obtiene la raíz cuadrada de x, x debe ser positivo
pow(x,y) calcula x elevado a la potencia y, pueden ser enteros o flotantes
ceil(x) redondea al entero más cercano
floor(x) redondea por defecto al entero más próximo
FUNCIONES TRIGONOMETRICAS
• C++ incluye una serie de funciones que sirven para realizar cálculos trigonométricos, algunas de estas funciones son:
cos(x) calcula el coseno del ángulo x (x se expresa en radianes)
sin(x) calcula el seno del ángulo x (x se expresa en radianes)
tan(x) devuelve la tangente del ángulo x (x se expresa en radianes)
atan(x) calcula el arco tangente del argumento x
FUNCIONES LOGARICMICAS Y EXPOTENCIALES
• Las funciones logarítmicas y exponenciales suelen ser utilizadas con frecuencia no sólo en matemáticas, sino también en el mundo de las empresas y los negocios. Algunas de estas funciones son:
log(x) calcula el logaritmo natural del argumento x
log10(x) calcula el logaritmo decimal del argumento x
exp(x) calcula el exponencial ex, donde e es la base de
logaritmos naturales de valor 2.718282
• El uso de las funciones vistas anteriormente requieren de la librería
CONTRUCCION DE EXPRECION
• Una expresión es, normalmente, una ecuación matemática, tal como 3 + 5. en esta expresión, el símbolo más (+) es el operador de suma, y los números 3 y 5 se llaman operandos.
• En síntesis, una expresión es una secuencia de operaciones y operandos que especifica un cálculo.
• Una expresión es un elemento de un programa que toma un valor, en algunos casos puede también realizar una operación.
• Las expresiones pueden ser valores constantes o variables simples, tales como 25 o ‘z’; pueden ser valores o variables combinadas con operadores; o bien pueden ser valores combinados con funciones como toupper(‘b’), el cual convierte el argumento ‘ b’ a mayúscula.
Por ejemplo:
Expresión para saber si un número es par: (num % 2 == 0)
Expresión para saber si un número A está en el rango 5 a 300 incluyendo los extremos (num >= 5) && (num <= 300)

Unidad2
View more presentations from JHONNY.
Unidad 3, lenguaje de programacion C++
UNIDAD NUMERO 3 DEL CURSO VIRTUAL C++
CONDICIONES SENCILLAS
Estructuras de control
• Las estructuras de control controlan el flujo de un programa o función.
• Permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida.
Estatuto if
• En C++, la estructura de control de selección principal es un estatuto if.
• El estatuto if tiene dos alternativas o formatos posibles
Ejemplo:
Calcular el mayor de dos números leídos del teclado y visualizarlos en pantalla.
void main()
{
int a, b;
cout << “introduzca dos números enteros”;
cin >> a >> b;
if (a > b)
cout << a << endl;
else
cout << b << endl;
}
Sintaxis
if ( condición)
estatuto;
En caso de requerir más de un estatuto es necesario usar llaves.
if ( condición)
{
bloque de estatutos;
}
Ejecución del if
• El estatuto se ejecuta de la siguiente manera. Cuando se alcanza la estructura if dentro de un programa, se evalúa la condición. Si la condición es verdadera, se ejecuta el estatuto o conjunto de estatutos; en caso de que sea falsa se brinca el estatuto o estatutos.
Por ejemplo:
if (num % 3)
cout << “es divisible entre 3”
Estatuto if de dos alternativas: if – else
if ( condición )
estatuto;
else
estatuto;
En caso de requerir mas de un estatuto es necesario usar llaves
if ( condición )
{
bloque de estatutos;
}
else
{
bloque de estatutos;
}
Ejecución del if – else
La estructura de selección if / else , ejecuta la(s) accion(es) después de la parte if cuando la condición es verdadera; en caso de que sea falsa ejecuta la(s) acción(es) que está(n) después del else.
Ejemplo
if (promedio >= 70)
cout << " Aprobado";
else
cout << "Reprobado";
ESTATUS SWITCH
• El estatuto switch es una sentencia C++ que se utiliza para seleccionar una de entre múltiples alternativas.
• El estatuto switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.
• El valor de esta expresión puede ser de tipo int o char, pero no pude ser del tipo float ni double.
• Se utiliza para ejecutar acciones diferentes según el valor de una expresión o una variable. Consiste en una serie de etiquetas case y un case por omisión default.
Sintaxis:
switch ( variable) la variable es de tipo entero o caracter
{
case valor1 : accion1; break;
case valor2 : accion2; break;
case valor n : accionn;break;
default: accionD;
} ;
La acción 1 se ejecuta si la variable adquiere el valor1.
La acción 2 se ejecuta si la variable adquiere el valor 2.
La acción n se ejecuta si la variable adquiere el valor n.
Cualquier otro valor de la variable conduce a la realización de la secuencia accionD, indicada por la palabra reservada default.
La secuencia default puede omitirse
Estatuto break
• Cuando se encuentra una sentencia case que concuerda con el valor del switch se ejecutan las sentencias que le siguen y todas las demás a partir de ahí, a no ser que se introduzca una sentencia break para salir de la sentencia switch.
Ejemplo: Dada una fecha con números, muestra la fecha poniendo el mes con letras.
#include
int dia, mes, anio;
char resp;
void main()
{
cout<<"Teclea el dia"<
cin>>dia;
cout<<"Teclea el mes"<
cin>>mes;
cout<<"Teclea el anio"<
cin>>anio;
cout<
case 2: cout<<"Febrero"; break;
case 3: cout<<"Marzo"; break;
case 4: cout<<"Abril"; break;
case 5: cout<<"Mayo"; break;
case 6: cout<<"Junio"; break;
case 7: cout<<"Julio"; break;
case 8: cout<<"Agosto"; break;
case 9: cout<<"Septiembre"; break;
case 10: cout<<"Octubre"; break;
case 11: cout<<"Noviembre"; break;
case 12: cout<<"Diciembre"; break;
default: cout<<"ERROR";
};
cout<<" de "<
Ejemplo: Programa que pide un número de mes y escribe la cantidad de días que
tiene.
#include
int mes;
void main()
{
cout<<"Teclea el mes"<
cin>>mes;
(continua)
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: cout<<"31 dias"<
break; // días, y al encontrar el break sale del switch, si no fue ninguno sigue revisando
case 2: cout<<"28 o 29 dias"<
break;
case 4:
case 6:
case 9:
case 11: cout<<"30 dias"<
default: cout<<"ERROR";
};
}
CONDICIONES ANALITICAS
Estatutos if ´s anidados
• Los estatutos if implementan decisiones que implican una o dos alternativas, un estatuto if es anidada cuando la sentencia de la rama verdadera o la rama falsa es a su vez una sentencia if.
• Un estatuto if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas
Sintaxis:
if (condición1)
estatuto1
else
if (condición2)
estatuto2
else
if (condiciónn)
estatuton
else
estatutoe
Si tenemos el siguiente fragmento de código:
if (condición 1)
if (condición 2)
estatuto;else // este else pertenece al if de la condición 2, pues se// se asocia al if más cercano
estatuto;
Si queremos que el else pertenezca al primer if debemos poner:
if (condición 1)
{
if (condición 2)
estatuto;
}
else // con el uso de llaves cerramos el if anidado y el else
estatuto; // pertenece al primer if
Ejemplo:
Determinar si un número es cero, positivo o negativo.
if (num == 0)
cout << " El número es cero";
else
if (num > 0)
cout << " El número es positivo";
else
cout << " El número es negativo";
Ejemplo I: Programa que lee 3 números enteros diferentes y los despliega de mayor a menor.
#include
/* Declaración de variables globales */
int a,b,c;
int main()
{
cout << "Dame los 3 numeros "<< endl;
cin >> a >> b >> c;
if (a > b)
if ( b > c)
cout <
else
if (c > a)
cout <
else
cout <
if ( a > c) {
if ( b > a)
cout <
}
else
if ( b > c )
cout <
else
if (c > b) {
if (b > a)
cout <
}
system ("pause");
return 0;
}
unidad 4, lenguaje de programación C++
• Un ciclo es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces.
• La sentencia o grupo de sentencias que se repite en un bloque se denomina cuerpo del ciclo y cada repetición del cuerpo del ciclo se llama iteración del ciclo.
Estatuto while
• Un ciclo while tiene una condición del ciclo, una expresión lógica que controla la secuencia de repetición.
• La posición de esta condición del ciclo es delante del cuerpo del ciclo y significa que un ciclo while es un ciclo de preverificación de modo que cuando se ejecuta el mismo, se evalúa la condición antes de que se ejecute el cuerpo del ciclo.
Sintaxis
while ( condición )
estatuto;
• Si se requiere realizar más de un estatuto se deben utilizar llaves.
while ( condición )
{
bloque de estatutos;
}
Aquí se ejecuta el (los) estatuto (s) mientras la condición es verdadera; al momento de ser falsa termina el ciclo.
Si la condición es falsa la primera vez nunca se
ejecuta(n) el (los) estatuto(s).
Ejemplos: Ejemplo I: Programa que pide 10 números y calcula y muestra la suma de todos los que fueron pares.
#include
int suma=0, cont= 10, num;
int main()
{
while (cont > 0)
{
cout << "Dame el numero " << endl;
cin >> num;
if (num % 2 == 0 ) // verificamos que sea un número par
suma += num; // recordemos que suma+= num es equivalente a suma = suma + num (ver modulo1 sección 3)
cont--;
}
cout << "La suma de los numeros pares proporcionados es " << suma << endl;
return 0;
}
Ejemplo II : Obtener el promedio de calificaciones de un grupo de 20 estudiantes
#include
int total, contador, calif;
double promedio;
int main()
{
total = 0;
contador = 1;
while (contador <= 20 )
{
cout<<" Dame la calificacion "<
cin >> calif;
total = total + calif;
contador ++;
}
promedio = total / 20.0;
cout<<"El promedio es "<< promedio<
return 0;
}
Estatuto do – while
• El estatuto do-while se utiliza para especificar un ciclo condicional que se ejecuta al menos una vez.
• Este ciclo se presenta en algunas circunstancias en las que se ha de tener la seguridad de que una determinada acción se ejecutara una o más veces, pero al menos una vez.
Sintaxis
do
estatuto;
while ( condición );
• Si se requiere realizar más de un estatuto se deben utilizar llaves.
do
{
bloque de estatutos;
}
while ( condición ); // nota que lleva ;
• Se realizan los estatutos y se verifica la condición, mientras sea verdadera se sigue ejecutando; al momento de ser falsa termina el ciclo.
• Dado que la condición se revisa al final del ciclo el (los) estatuto(s)
se realizan al menos una vez a diferencia del while
Ejemplo I: Dado un número de tipo long decir cuántos dígitos tiene
#include
long num;
int cant = 0, x;
int main()
{
cout<<"Teclea un numero ";
cin>>num;
x = num; // guardo el numero en otra variable para no perderlo (por si luego lo ocupo)
do
{
x = x / 10;
cant++;
} while (x > 0);
cout<<"El numero tiene "<<<" digitos"<
return 0;
}
Ejemplo II: Validar que un número dado esté en el rango de 10 a 20.
#include
int num;
int main()
{
do
{
cout << "Dame el numero " << endl;
cin >> num;
}
while ( (num <10) || (num > 20) );
cout << "Numero dentro de rango" << endl;
return 0;
}
donde si la condición es falsa la primera vez no se ejecuta lo que esté dentro del
ESTATUTO FOR
• El estatuto for es un método para ejecutar un bloque de sentencias un número fijo de veces.
• El ciclo for se diferencia del ciclo while, do- while en que las operaciones de control del ciclo se sitúan en un solo sitio: la cabecera de l estatuto.
Sintaxis
for (inicialización ; condición ; incremento )
estatuto;
• El estatuto for es un método para ejecutar un bloque de sentencias un número fijo de veces.
• El ciclo for se diferencia del ciclo while, do- while en que las operaciones de control del ciclo se sitúan en un solo sitio: la cabecera de l estatuto.
Sintaxis
for (inicialización ; condición ; incremento )
estatuto;
• Si se requiere realizar más de un estatuto se deben utilizar llaves.
for (inicialización ; condición ; incremento )
{
bloque de estatutos;
}
• Funcionamiento del For
- Ejecuta el o los estatutos de inicialización
- Evalúa la condición, si es verdadera entra al ciclo
- Ejecuta el o los estatutos
- Incrementa o decrementa el o los estatutos de
inicialización y regresa al paso 2
Notas sobre el for
• Las 3 partes del for son opcionales, si no se pone condición se toma como verdadero.
• Si no se incluye la inicialización o condición, la condición y el incemento o decremento deben de ir.
Ejemplo: for ( ; a > 10 ; a--)
• Si la primera vez la condición es falsa no se ejecuta ningún estatuto y termina el for
• Si se pone más de una inicialización o acción, estas deben ir separadas por coma
Ejemplo: for ( x=0, y= 3; x < 4 ; x++ )
• Una variable puede declararse en la sección de inicialización, solo hay que tomar en cuenta que esta variable solo es reconocida dentro del ciclo.
Ejemplo: for (int num = 1; num < = 10; num++)
Ejemplo I: Mostrar los 30 primeros números de la serie de Fibonacci. La serie es 1,1,2,3,5,8,13....
#include
long a, b, fibo; //los defino long porque se generan numeros muy grandes
int i;
int main()
{
a = 1;
b = 1;
for (i = 3; i<= 30; i++) // empiezo i en 3 porque ya mostre los 2 primeros
{
fibo = a + b;
cout<<<"\t";
a = b;
b = fibo;
}
return 0;
}
Ejemplo II: Sumar todos los números nones desde 1 hasta 30
#include
int num, suma = 0;
int main()
{
for (num = 1; num <= 30; num+=2) // incremento de 2 en 2 para asegurar
suma += num; // números nones
cout << " La suma es " << suma;
return 0;
}
CICLO INFINITO
Ciclo infinito
• Cuando en un ciclo la condición siempre es verdadera se dice que es un ciclo infinito, pues nunca saldrá del ciclo y el programa no termina. Para evitarlos hay que estar seguros que en el bloque de estatutos haya un estatuto que modifique el valor de la condición de tal modo que llegue a ser falsa.
Ejemplo I
while ( calificacion != -1)
total = total + calificacion; // dado que no hay llaves la lectura del número
contador ++; // no se realiza y el valor de la calificación no
cout << "Da un -1 para terminar el ciclo" << endl; // cambia, por ende la
cin >> calificacion // la condición siempre es verdadera
Ejemplo II
cont = 6;
a = 10;
while ( cont > 1)
{
suma = suma + cont;
a--;
cont++; // cont cada vez es mayor por lo que
// siempre será mayor a 1
}
lunes, 31 de mayo de 2010
Introducion
Uno de los primeros dispositivos mecánicos para contar fue el ábaco, cuya historia se remonta a las antiguas civilizaciones griega y romana. Este dispositivo es muy sencillo, consta de cuentas ensartadas en varillas que a su vez están montadas en un marco rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores almacenados, y es mediante dichas posiciones que este representa y almacena datos. A este dispositivo no se le puede llamar computadora por carecer del elemento fundamental llamado programa.
Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662) de Francia y la de Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania. Con estas máquinas, los datos se representaban mediante las posiciones de los engranajes, y los datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas, de manera similar a como leemos los números en el cuentakilómetros de un automóvil.
La primera computadora fue la máquina analítica creada por Charles Babbage, profesor matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles Babbage sobre un computador nació debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas.
Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que podía reproducir automáticamente patrones de tejidos leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este método Babbage abandonó la máquina de diferencias y se dedico al proyecto de la máquina analítica que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. La tecnología de la época no bastaba para hacer realidad sus ideas.
El mundo no estaba listo, y no lo estaría por cien años más.
En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada por un equipo encabezado por Howard H. Aiken. Esta máquina no está considerada como computadora electrónica debido a que no era de propósito general y su funcionamiento estaba basado en dispositivos electromecánicos llamados relevadores.
En 1947 se construyó en la Universidad de Pennsylvania la ENIAC (Electronic Numerical Integrator And Calculator) que fue la primera computadora electrónica, el equipo de diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado, pero tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo.
El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culminó dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro John von Neumann (1903 - 1957). Las ideas de von Neumann resultaron tan fundamentales para su desarrollo posterior, que es considerado el padre de las computadoras.
La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este nuevo equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos.
La idea fundamental de von Neumann fue: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada en un lenguaje, y no por medio de alambres que eléctricamente interconectaban varias secciones de control, como en la ENIAC.
Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos:
• La forma en que están construidas.
• Forma en que el ser humano se comunica con ellas.
Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662) de Francia y la de Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania. Con estas máquinas, los datos se representaban mediante las posiciones de los engranajes, y los datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas, de manera similar a como leemos los números en el cuentakilómetros de un automóvil.
La primera computadora fue la máquina analítica creada por Charles Babbage, profesor matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles Babbage sobre un computador nació debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas.
Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que podía reproducir automáticamente patrones de tejidos leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este método Babbage abandonó la máquina de diferencias y se dedico al proyecto de la máquina analítica que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. La tecnología de la época no bastaba para hacer realidad sus ideas.
El mundo no estaba listo, y no lo estaría por cien años más.
En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada por un equipo encabezado por Howard H. Aiken. Esta máquina no está considerada como computadora electrónica debido a que no era de propósito general y su funcionamiento estaba basado en dispositivos electromecánicos llamados relevadores.
En 1947 se construyó en la Universidad de Pennsylvania la ENIAC (Electronic Numerical Integrator And Calculator) que fue la primera computadora electrónica, el equipo de diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado, pero tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo.
El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culminó dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro John von Neumann (1903 - 1957). Las ideas de von Neumann resultaron tan fundamentales para su desarrollo posterior, que es considerado el padre de las computadoras.
La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este nuevo equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos.
La idea fundamental de von Neumann fue: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada en un lenguaje, y no por medio de alambres que eléctricamente interconectaban varias secciones de control, como en la ENIAC.
Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos:
• La forma en que están construidas.
• Forma en que el ser humano se comunica con ellas.
Etiquetas:
LA HISTORIA DE LA COMPUTADORA
la primera generacion
En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos.
Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características:
• Estas máquinas estaban construidas por medio de tubos de vacío.
• Eran programadas en lenguaje de máquina.
En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares).
Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor que los modelos contemporáneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generación formando una Cia. privada y construyendo UNIVAC I, que el Comité del censo utilizó para evaluar el de 1950.
Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características:
• Estas máquinas estaban construidas por medio de tubos de vacío.
• Eran programadas en lenguaje de máquina.
En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares).
Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor que los modelos contemporáneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generación formando una Cia. privada y construyendo UNIVAC I, que el Comité del censo utilizó para evaluar el de 1950.
Etiquetas:
LA HISTORIA DE LA COMPUTADORA
la segunda generacion
Cerca de la década de 1960, las computadoras seguían evolucionando, se reducía su tamaño y crecía su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas.
Las características de la segunda generación son las siguientes:
• Están construidas con circuitos de transistores.
• Se programan en nuevos lenguajes llamados lenguajes de alto nivel.
En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester.
Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de expertos: analistas, diseñadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. El usuario final de la información no tenía contacto directo con las computadoras. Esta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas "programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen número de horas escribiendo instrucciones, "corriendo" el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. Además, para no perder el "programa" resultante había que "guardarlo" (almacenarlo) en una grabadora de astte, pues en esa época no había discos flexibles y mucho menos discos duros para las PC; este procedimiento podía tomar de 10 a 45 minutos, según el programa. El panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco flexible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y se pone a trabajar. Aparecen los programas procesadores de palabras como el célebre Word Star, la impresionante hoja de cálculo (spreadsheet) Visicalc y otros más que de la noche a la mañana cambian la imagen de la PC. El sortware empieza a tratar de alcanzar el paso del hardware. Pero aquí aparece un nuevo elemento: el usuario.
El usuario de las computadoras va cambiando y evolucionando con el tiempo. De estar totalmente desconectado a ellas en las máquinas grandes pasa la PC a ser pieza clave en el diseño tanto del hardware como del software. Aparece el concepto de human interface que es la relación entre el usuario y su computadora. Se habla entonces de hardware ergonómico (adaptado a las dimensiones humanas para reducir el cansancio), diseños de pantallas antirreflejos y teclados que descansen la muñeca. Con respecto al software se inicia una verdadera carrera para encontrar la manera en que el usuario pase menos tiempo capacitándose y entrenándose y más tiempo produciendo. Se ponen al alcance programas con menús (listas de opciones) que orientan en todo momento al usuario (con el consiguiente aburrimiento de los usuarios expertos); otros programas ofrecen toda una artillería de teclas de control y teclas de funciones (atajos) para efectuar toda suerte de efectos en el trabajo (con la consiguiente desorientación de los usuarios novatos). Se ofrecen un sinnúmero de cursos prometiendo que en pocas semanas hacen de cualquier persona un experto en los programas comerciales. Pero el problema "constante" es que ninguna solución para el uso de los programas es "constante". Cada nuevo programa requiere aprender nuevos controles, nuevos trucos, nuevos menús. Se empieza a sentir que la relación usuario-PC no está acorde con los desarrollos del equipo y de la potencia de los programas. Hace falta una relación amistosa entre el usuario y la PC.
Las computadoras de esta generación fueron: la Philco 212 (esta compañía se retiró del mercado en 1964) y la UNIVAC M460, la Control Data Corporation modelo 1604, seguida por la serie 3000, la IBM mejoró la 709 y sacó al mercado la 7090, la National Cash Register empezó a producir máquinas para proceso de datos de tipo comercial, introdujo el modelo NCR 315.
La Radio Corporation of America introdujo el modelo 501, que manejaba el lenguaje COBOL, para procesos administrativos y comerciales. Después salió al mercado la RCA 601
Las características de la segunda generación son las siguientes:
• Están construidas con circuitos de transistores.
• Se programan en nuevos lenguajes llamados lenguajes de alto nivel.
En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester.
Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de expertos: analistas, diseñadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. El usuario final de la información no tenía contacto directo con las computadoras. Esta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas "programar" (alimentarle instrucciones) para obtener resultados; por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen número de horas escribiendo instrucciones, "corriendo" el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. Además, para no perder el "programa" resultante había que "guardarlo" (almacenarlo) en una grabadora de astte, pues en esa época no había discos flexibles y mucho menos discos duros para las PC; este procedimiento podía tomar de 10 a 45 minutos, según el programa. El panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco flexible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y se pone a trabajar. Aparecen los programas procesadores de palabras como el célebre Word Star, la impresionante hoja de cálculo (spreadsheet) Visicalc y otros más que de la noche a la mañana cambian la imagen de la PC. El sortware empieza a tratar de alcanzar el paso del hardware. Pero aquí aparece un nuevo elemento: el usuario.
El usuario de las computadoras va cambiando y evolucionando con el tiempo. De estar totalmente desconectado a ellas en las máquinas grandes pasa la PC a ser pieza clave en el diseño tanto del hardware como del software. Aparece el concepto de human interface que es la relación entre el usuario y su computadora. Se habla entonces de hardware ergonómico (adaptado a las dimensiones humanas para reducir el cansancio), diseños de pantallas antirreflejos y teclados que descansen la muñeca. Con respecto al software se inicia una verdadera carrera para encontrar la manera en que el usuario pase menos tiempo capacitándose y entrenándose y más tiempo produciendo. Se ponen al alcance programas con menús (listas de opciones) que orientan en todo momento al usuario (con el consiguiente aburrimiento de los usuarios expertos); otros programas ofrecen toda una artillería de teclas de control y teclas de funciones (atajos) para efectuar toda suerte de efectos en el trabajo (con la consiguiente desorientación de los usuarios novatos). Se ofrecen un sinnúmero de cursos prometiendo que en pocas semanas hacen de cualquier persona un experto en los programas comerciales. Pero el problema "constante" es que ninguna solución para el uso de los programas es "constante". Cada nuevo programa requiere aprender nuevos controles, nuevos trucos, nuevos menús. Se empieza a sentir que la relación usuario-PC no está acorde con los desarrollos del equipo y de la potencia de los programas. Hace falta una relación amistosa entre el usuario y la PC.
Las computadoras de esta generación fueron: la Philco 212 (esta compañía se retiró del mercado en 1964) y la UNIVAC M460, la Control Data Corporation modelo 1604, seguida por la serie 3000, la IBM mejoró la 709 y sacó al mercado la 7090, la National Cash Register empezó a producir máquinas para proceso de datos de tipo comercial, introdujo el modelo NCR 315.
La Radio Corporation of America introdujo el modelo 501, que manejaba el lenguaje COBOL, para procesos administrativos y comerciales. Después salió al mercado la RCA 601
Etiquetas:
LA HISTORIA DE LA COMPUTADORA
Suscribirse a:
Entradas (Atom)