33
E-mail: [email protected] http://yesikamedina.wordpress.com Prof.Yesika Medina ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Embed Size (px)

Citation preview

Page 1: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

E-mail: [email protected]://yesikamedina.wordpress.com

Prof. Yesika Medina

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I

Page 2: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

�Lenguajes de programación.

�Programación estructurada.

�Lenguaje C.

� Instrucciones de Condición, Simple, Anidada.

�Bibliotecas stdio.h, conio.h, stdlib.h, math.h

UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN ESTRUCTURADA.

Page 3: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Un programa se escribe en un lenguaje de programación y las operaciones que conducen aexpresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajesutilizados para escribir programas de computadoras son los lenguajes de programación yprogramadores son los escritores y diseñadores de programas.

Los principales tipos de lenguajes utilizados en la actualidad son tres:� Lenguajes máquina.

� Lenguaje de bajo nivel (ensamblador).

� Lenguajes de alto nivel.

LENGUAJES DE PROGRAMACIÓN.

Page 4: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

.� LENGUAJES MÁQUINA. son aquellos que están escritos en lenguajes directamente

inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias(cadenas o series de caracteres-dígitos- O y 1) que especifican una operación, y lasposiciones (dirección) de memoria implicadas en la operación se denominaninstrucciones de máquina o código máquina. El código máquina es el conocido códigobinario.

� LENGUAJE DE BAJO NIVEL (ENSAMBLADOR). son más fáciles de utilizar quelos lenguajes máquina, pero, al igual, que ellos, dependen de la máquina en particular. Ellenguaje de bajo nivel por excelencia es el ensumhlacfor (assembly languuje). Lasinstrucciones en lenguaje ensamblador son instrucciones conocidas como nernotécnicos(mnemonics). Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: eninglés,ADD, SUB, DIV, etc.; en español, SUM, RES, DIV, etc.

UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN ESTRUCTURADA.

Page 5: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Son los más utilizados por los programadores. Están diseñados para que laspersonas escriban y entiendan los programas de un modo mucho más fácil que los lenguajesmáquina y ensambladores.

Otra razón es que un programa escrito en lenguaje de alto nivel es independientede la máquina; esto es, las instrucciones del programa de la computadora no dependen deldiseño del hardware o de una computadora en particular.

En consecuencia, los programas escritos en lenguaje de alto nivel son portables otransportables, lo que significa la posibilidad de poder ser ejecutados con poca o ningunamodificación en diferentes tipos de computadoras; al contrario que los programas enlenguaje máquina o ensamblador, que sólo se pueden ejecutar en un determinado tipo decomputadora.

LENGUAJES DE ALTO NIVEL.

Page 6: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

C es un lenguaje de programación que contiene excelentes características como lenguaje para aprendizaje de programación y lenguaje profesional de propósito general; básicamente es un entorno de programación con editor y compilador incorporado.

� C es una evolución de los lenguajes BCPL -desarrollado por Martin Richards- y B –desarrollado por Ken Thompson en 1970- para el primitivo UNIX de la computadoraDEC PDP-7.

� C nació realmente en 1978, con la publicación de The C Programming Languaje, porBrian Kernighan y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, C fuecreciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los añosjunto a la creación de compiladores por grupos no involucrados en su diseño, hicieronnecesario pensar en la estandarización de la definición del lenguaje C.

Lenguaje C.

Page 7: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

� El lenguaje C es poderoso y flexible, con órdenes, operaciones yfunciones de biblioteca que se pueden utilizar para escribir lamayoría de los programas que corren en la computadora.

� C se utiliza por programadores profesionales para desarrollar software en lamayoría de los modernos sistemas de computadora.

� Se puede utilizar C para desarrollar sistemas operativos,compiladores, sistemas de tiempo real y aplicaciones decomunicaciones.

� Un programa C puede ser escrito para un tipo de computadora y trasladarse aotra computadora con pocas o ninguna modificación -propiedad conocida comoportabilidad-. El hecho de que C sea portable es importante ya que la mayoríade los modernos computadores tienen un compilador C, una vez que se aprendeC no tiene que aprenderse un nuevo lenguaje cuando se escriba un programapara otro tipo de computadora. No es necesario reescribir un problema paraejecutarse en otra computadora.

VENTAJAS DEL LENGUAJE C.

Page 8: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

� Una nueva sintaxis para declarar funciones. Una declaración defunción puede añadir una descripción de los argumentos de lafunción. Esta información adicional sirve para que los compiladoresdetecten más fácilmente los errores causados por argumentos queno coinciden.

� Asignación de estructuras (registros) y enumeraciones.� Preprocesador más sofisticado.� Una nueva definición de la biblioteca que acompaña a C. Entre otras

funciones se incluyen: acceso al sistema operativo (por ejemplo,lectura y escritura de archivos), entrada y salida con formato,asignación dinámica de memoria, manejo de cadenas de caracteres.

� Una colección de cabeceras estándar que proporciona accesouniforme a las declaraciones de funciones y tipos de datos.

CARACTERISTICAS DEL LENGUAJE C.

Page 9: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

La programación modular es uno de los métodos de diseño más flexible y potentes paramejorar la productividad de un programa. En programación modular el programa se divide enmódulos (partes independientes), cada una de las cuales ejecuta una Única actividad o tarea y secodifican independientemente de otros módulos. Cada uno de estos módulos se analizan, codifican yponen a punto por separado.

Cada programa contiene un módulo denominado progruma principul que controla todo loque sucede; se transfiere el control a submódulos (posteriormente se denominarán subprogramas), demodo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control almódulo principal cuando se haya completado su tarea. Si la tarea asignada a cada submódulo esdemasiado compleja, éste deberá romperse en otros módulos más pequeños.

El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tengasolamente una tarea específica que ejecutar. Esta tarea puede ser entrada, salidu, manipulación de datos,control de otros módulos o alguna combinación de éstos. Un módulo puede transferir temporalmente(hifurcur) el control a otro módulo; sin embargo, cada módulo debe eventualmente devolver el controlal módulo del cual se recibe originalmente el control.

Los módulos son independientes en el sentido en que ningún módulo puede tener accesodirecto a cualquier otro módulo excepto el módulo al que llama y sus propios submódulos. Sinembargo, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulocuando se transfiera a ellos el control.

PROGRAMACIÓN MODULAR

Page 10: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Los términos programación modular; programación descendente y programación estructurada seintrodujeron en la segunda mitad de la década de los sesenta y a menudo sus términos se utilizan comosinónimos aunque no significan lo mismo. La programación modular y descendente ya se ha examinadoanteriormente. La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:

El programa tiene un diseño modular.� Los módulos son diseñados de modo descendente.� Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y� repetición.� Si está familiarizado con lenguajes como BASIC, Pascal, FORTRAN o C, la programación� estructurada significa también progrumación sin GOTO (C no requiere el uso de la sentencia� GOTO).

El término programación estructurada se refiere a un conjunto de técnicas que han idoevolucionando desde los primeros trabajos de Edgar Dijkstra. Estas técnicas aumentan considerablemente laproductividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurary mantener los programas. La programación estructurada utiliza un número limitado de estructuras de controlque minimizan la complejidad de los programas y, por consiguiente, reducen los errores; hace los programasmás fáciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura.

La programación estructurada es el conjunto de técnicas que incorporan:

� recursos abstractos,� diseño descendente (top-down),� estructuras básicas.

PROGRAMACIÓN ESTRUCTURADA

Page 11: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN ESTRUCTURADA.

Page 12: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Un identificador es una secuencia de caracteres, letras, dígitos y subrayados (_). El primer carácter debe ser una letra (algún compilador admite carácter de subrayado). Las letras mayúsculas y minúsculas son diferentes.

nombre-clase Indice elementomayor Cantidad-Totaa Habitacionl20 Dia_Mes_Anyo Fecha-Compra-Casa

En Borland C/C++ el identificador puede ser de cualquier longitud; sin embargo, el compilador ignora cualquier carácter fuera de los 32 primeros.

C es sensible a las mayúsculas. Por consiguiente, C reconoce como distintos los identificadores ALFA, al f a y ALFa. (Le recomendamos que utilice siempre el mismo estilo d escribir sus identificadores.) Un consejo que puede servir de posible regla puede ser:

1. Escribir identificadores de variables en letras minúsculas.2. Constantes en mayúsculas.3. Funciones con tipo de letra mixto: mayúsculdminúscula.

Reglas básicas de formación de identificadores

1. Secuencia de letras o dígitos; el primer carácter puede ser una letra o un subrayado.

2. Los identificadores son sensibles a las mayúsculas: . minun es distinto de MiNum .

3. Los identificadores pueden tener cualquier longitud, pero sólo son significativos los 32.

4. Los identificadores no pueden ser palabras reservadas, tales como if, switch o else.

IDENTIFICADORES

Page 13: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Una palabra reservada (keyword o resewed word), tal como void es una característica del lenguaje C , asociada con algún significado especial. Una palabra reservada no se

puede utilizar como nombre de identificador o función.

void void( ) / * error * /. . .int char; / * error * /. . .Los siguientes identificadores están reservados para utilizarlos como palabras reservadas, y no sedeben emplear para otros propósitos.asm enum signed auto extern sizeof break float staticCase for struct char goto switch const if typedef Continue default do double else int unio longunsigned register void return vol at i 1 e short while

Palabras reservadas

Page 14: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Ya se ha expuesto antes que los comentarios en C tienen el formato:

/ * . . . * /

Los comentarios se encierran entre / * y * / pueden extenderse a lo largo de varias líneas.

/ * Titulo: Demo-uno por Mr. Martinez * /

Otra forma, el comentario en dos líneas:

/ * Cabecera del programa text-uno

Autor: J.R. Mazinger * /

Comentarios

Page 15: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Todas las sentencias deben terminar con un punto y coma. Otros signos de puntuación son:

! % & * o - + = { } - [ ] \ ; ‘ : < > ? , . / I / ‘

Los separadores son espacios en blanco, tabulaciones, retornos de carro y avances de línea.

Signos de puntuación y separadores

Page 16: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Es un archivo especial que contiene declaraciones de elementos y funciones de la biblioteca. Para utilizar macros, constantes, tipos y funciones almacenadas en una biblioteca, un programa debe utilizar la directiva #include para insertar el archivo de cabecera correspondiente.

Por ejemplo, si un programa utiliza la función pow que se almacena en la biblioteca matemática math.h,debe contener la directiva

#include <math.h>para hacer que el contenido de la biblioteca matemática esté

disponible a un programa. La mayoría de los programas contienen líneas como ésta al principio, que se incluyen en el momento de compilación.

#include <stdio.h>#include "stdio. h"

Archivos de cabecera

Page 17: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

El preprocesador en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al compilador antes de que se compile el programa principal). Las dos directivas más usuales son

#include y #define.Todas las directivas del preprocesador comienzan con el signo de libro o

«almohadilla>>(# ), que indica al compilador que lea las directivas antes de compilar la parte(función) principal del programa. Las directivas son instrucciones al compilador. Las directivas noson generalmente sentencias, obsérvese que su línea no termina en punto y coma-, sinoinstrucciones que se dan al compilador antes de que el programa se compile. Aunque las directivaspueden definir macros, nombres de constantes, archivos fuente adicionales, etc., su uso másfrecuente en C es la inclusión de archivos de cabecera.

Existen archivos de cabecera estándar que se utilizan ampliamente, tales como STDIO . H, STDLIB . H, MATH. H, STRING. H y se utilizarán otros archivos de cabecera definidos por el usuario para diseño estructurado.

La directiva #include indica al compilador que lea el archivo fuente que viene a continuación de ella y su contenido lo inserte en la posición donde se encuentra dicha directiva. Estos archivos se denominan archivos de cubecera o archivos de inclusión.

Los archivos de cabecera (archivos con extensión . h contienen código fuente C) se sitúan en un

programa C mediante la directiva del preprocesador #include con una instrucción que tiene el

siguiente formato : #include <nombrearch. h> O bien #include "nombrearch.h"

DIRECTIVAS DEL PREPROCESADOR

Page 18: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

TIPOS DE DATOS

Page 19: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 20: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 21: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Especificadores de Formatos.

Page 22: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Secuencias de Escape.

Page 23: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN ESTRUCTURADA.

Page 24: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo. El compilador ignora los comentarios, no realiza ninguna tarea concreta. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable.

Generalmente, se considera buena práctica de programación comentar su archivo fuente tanto como sea posible, al objeto de que usted mismo y otros programadores puedan leer fácilmente el programa con el paso de tiempo. Es buena práctica de programación comentar su programa en la parte superior de cada archivo fuente. La información que se suele incluir es el nombre del archivo, el nombre del programador, una breve descripción, la fecha en que se creó la versión y la información de la revisión.

Los comentarios en C estándar comienzan con la secuencia / * y terminan con la secuencia * /.Todo el texto situado entre las dos secuencias es un comentario ignorado por el compilador./* PRUEBA1.C - Primer programa C * /Si se necesitan varias líneas de programa se puede hacer lo siguiente:/ *Programa : PRUEBA1.CProgramador : Pepe MortimerDescripción : Primer programa CFecha creación : Septiembre 2000Revis iÓn : Ninguna*/

También se pueden situar comentarios de la forma siguiente: scanf ("%d" , &x) ; / * sentencia de entrdda de un valor entero*/.

COMENTARIOS

Page 25: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

#include <stdio.h>

/ * Este programa imprime: Bienvenido a la programación en C * /

int main()

{

printf("Bienvenid0 a la programación en C\n");

return O;

}

EJEMPLO.

Page 26: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 27: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 28: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 29: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 30: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 31: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en
Page 32: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

ProgramasProgramasProgramasProgramas.... DiseñarlosDiseñarlosDiseñarlosDiseñarlos enenenen algoritmosalgoritmosalgoritmosalgoritmos yyyy diagramadiagramadiagramadiagrama dededede flujoflujoflujoflujo.... CodificarloCodificarloCodificarloCodificarlo enenenen lenguajelenguajelenguajelenguaje CCCC::::documentardocumentardocumentardocumentar cadacadacadacada línealínealínealínea dededede codigocodigocodigocodigo,,,, cambiarlecambiarlecambiarlecambiarle elelelel colorcolorcolorcolor aaaa lalalala consolaconsolaconsolaconsola yyyy aaaa lalalala fuente,fuente,fuente,fuente, mostrarmostrarmostrarmostrarelelelel titulotitulotitulotitulo deldeldeldel programaprogramaprogramaprograma enenenen lalalala consolaconsolaconsolaconsola

1. Escribir un programa que lea un entero, lo multiplique por 2, y muestre el resultado en pantalla.

2. Escribe un programa que permita multiplicar 3 valores.3. Codificar un programa que permita calcular el promedio de cuatro

calificaciones.4. Escribir un programa que solicite al usuario la longitud y la anchura

de una habitación y a continuación visualice su superficie con cuatro decimales.

5. Escriba un programa para calcular la longitud de la circunferencia y el área del circulo para un radio introducido desde el teclado.

6. Codificar un programa que determine el mayor de dos números.7. Escribir un programa que dibuje un rectángulo. 8. Escribir un programa que lea dos números enteros y comprueba cual

es el valor del resto de la división.(if(n%d==0)9. Escribir un programa que permita introducir un numero positivo o

negativo y muestre un mensaje if(numero=0) if(numero<0) if(numero>0) .

Page 33: ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I · PDF fileCada módulo se codifica utilizando las tres estructuras de control básicas: ... Ya se ha expuesto antes que los comentarios en

“Nunca consideres el estudio como una

obligación, sino como una oportunidad

para involucrarte en el bello y

maravilloso mundo del saber.”