29
Introducción a la Programación M.C. LOURDES SÁNCHEZ GUERRERO

Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Introducción

a la

Programación

M.C. LOURDES SÁNCHEZ GUERRERO

Page 2: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Introducción a la Programación

Un algoritmo es un método para resolver un problema, debepresentarse como una secuencia ordenada de instrucciones quesiempre se ejecutan en un tiempo finito y con una cantidad deesfuerzo también finito.

En un algoritmo siempre debe haber un punto de inicio y un puntode terminación, estos deben ser únicos y deben ser fácilmenteidentificables.

CARACTERÍSTICAS DE UN ALGORITMO

Ser Preciso; Esto es, debe especificar sin ambiguedad el orden enque se deben ejecutar las instrucciones.

Definido; Esto es, cada vez que se ejecute bajo las mismascondiciones, la secuencia de ejecución deberá ser la mismaproporcionándonos el mismo resultado.

Ser Finito; Esto es, siempre que sea adecuado se realizarán unnúmero finito de instrucciones, en un tiempo finito y requiriendo unacantidad finita de esfuerzo.

Page 3: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Introducción a la Programación

pseudocódigo es un forma de representar un algoritmo

Palabras Clave en Pseudocódigo

Algoritmo nombrePrograma

Declaración de constantes

PRINCIPAL

Inicio

Cuerpo del programa /*donde se desarrolla las instrucciones

para resolver el problema */

Fin

Page 4: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Introducción a la Programación

Dentro del cuerpo del programa

inicio

se establecen las variables y su tipo

leer (lectura de las variable de entrada)

Estructuras de Control

operaciones

escribe (resultados)

fin

Page 5: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Introducción a la Programación

Palabras claves

Ejemplo: PRINCIPAL, inicio , fin, flotante,

leer, escribe, entero, carácter, etc.

-Secuencia

Estructuras -Bifurcación Condicional

de Control -Ciclos:

+Mientras

+ Hacer- Mientras

+ Desde

Page 6: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control

Secuencia

Un conjunto de instrucciones, una detrás de la

otra

..

.

instrucción 1

instrucción 2

instrucción 3

instrucción 4

.

.

Page 7: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Secuencia

Ejemplo:

Entero X, K, S, J, P, M ;

Inicio

X←10;

K ← 3;

lee ( S, J);

M ← S+ 2/ K;

P ← X * 2+ J;

escribe (‘ Los valores Finales son:’ M, P);

fin

Page 8: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control Bifurcación Condicional

Bifurcación Condicional

Es una estructura de decisión.

SI (condición)

inicio

instrucción 1;

instrucción 2;

instrucción 3;

fin

Page 9: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control Bifurcación Condicional

Ejemplo:

entero X←10

si (X> 0) entonces

M ← X + 2

si-no

M ← X - 3

Ejemplo:

entero X←10

si (X> 0)

inicio

M ← X + 2;

escribe( ‘el valor es’, M);

fin

si-no

inicio

M ← X - 3;

escribe( ‘el valor es’, M);

fin

Page 10: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo Mientras

En este ciclo es importante tener en

cuenta que el ciclo mientras, no es

automático, es necesario incluir en

esta estructura de control un

contador. El contador es una variable

de tipo entero y debe estar incluido

dentro de este ciclo su incremento.

Page 11: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo

mientras

Ejemplo:

entero X←1;

entero M ← 30;

mientras (X ≤10)

M ← X + 2

Ejemplo:

entero X←10;

M ← 30;

mientras (X ≤10 )

inicio

M ← X + 2;

escribe( ‘el valor es’, M);

fin

Page 12: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo Mientras

Ejemplo:

entero X←0;

M ← 30;

mientras (X ≤10 )

inicio

M ← X + 2;

escribe( ‘el valor es’, M);

X ← X + 1; /* contador */

fin

Algoritmo caso1

/*este algoritmo es un ejemplo de la estructura mientras*/

PRINCIPAL

Inicio

entero X←0;

M ← 30;

mientras (X ≤10 )

inicio

M ← X + 2;

escribe( ‘el valor es’, M);

X ← X + 1; /* contador */

fin;

fin;

Page 13: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo Mientras

Acumulador: es una variable de

cualquier tipo, en el cual acumula

valores. Cuando en algoritmo lo

requiera. Por ejemplo: el algoritmo

que acumula diez valores de una

variable acumula, estos valores

son leídos a través de una variable

R.

Page 14: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo Mientras

entero X←0;

flotante R;

acumula ← 0;

mientras (X ≤10 )

inicio

lee( R);

acumula ← acumula + R ;

escribe( ‘el valor acumulado es:’, acumula); /*este es el acumulador*/

X ← X + 1; /* contador *

fin

Page 15: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo Mientras

Algoritmo acumula_valores

/*este algoritmo es un ejemplo de la estructura mientras, con contador y acumulador*/

PRINCIPAL

Inicio

entero X←0;

flotante R, acumula;

acumula ← 0;

mientras (X ≤10 )

inicio

lee( R);

acumula ← acumula + R ;

escribe( ‘el valor acumulado es:’, acumula); /*este es el acumulador*/

X ← X + 1; /* contador * /

fin

fin

Page 16: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo

mientras

Ejemplo:

entero X←1;

entero M ← 30;

hacer

M ← X + 2

mientras (X ≤10);

Ejemplo:

entero X←10;

M ← 30;

Hacer

inicio

M ← X + 2;

escribe( ‘el valor es’, M);

fin

mientras (X ≤10 );

Page 17: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo caso1

/*este algoritmo es un ejemplo de la estructura mientras*/

entero M, X;

Flotante M;

M ← 0.0; X←0;

mientras (X ≤10 )

inicio

M ← X + 2.65;

escribe( ‘el valor es’, M);

X ← X + 1; /* contador */

fin

entero M, X;

Flotante M;

M ← 0.0; X←0;

mientras (X ≤10 )

inicio

M ← X + 2.65;

X ← X + 1; /* contador */

fin;

escribe( ‘el valor es’, M);

Page 18: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo mientras

Algoritmo acumula_valores

/*este algoritmo es un ejemplo de la estructura mientras, con contador y acumulador*/

PRINCIPAL

Inicio

entero X←0;

flotante R, acumula;

acumula ← 0;

mientras (X ≤10 )

inicio

lee( R);

acumula ← acumula + R ; /*este es el acumulador*/

X ← X + 1; /* contador * /

fin;

escribe( ‘el valor acumulado es:’, acumula);

fin;

Page 19: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Ejemplos de algoritmos en

pseudocódigo

Los siguientes ejemplos en pseudocódigo, son

ejercicios que se presentan al alumno en la

clase y se explica donde esta el error en la

misma clase. Donde falta alguna variable, lo

que no están en el lugar correcto en el

algoritmo, si falta la definición del tipo de

variable, que el contador no se encuentra en el

lugar correcto, porque que no hace lo que se

solicita en el algoritmo, etc. Esto es con el

propósito de que el alumno revise y corrija los

algoritmos como tarea.

Page 20: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Estructuras de Control de Ciclo mientras

Algoritmo acumula_valores

/*este algoritmo es un ejemplo de la estructura mientras, con contador y acumulador, calcula la suma de los datos leídos desde teclado y determina cuales son pares */

PRINCIPAL

Inicio

entero R, suma;

suma ← 0; X←0;

mientras (X ≤10 )

inicio

lee( R);

oso ← R modulo 2;

si (oso == 0)

inicio

suma ← suma + R ;

escribe( ‘el valor de suma de múltiplos de 2 es:’, acumula); /*este es el acumulador de los valores que son múltiplos de 2 */

X ← X + 1; /* contador * /

fin;

Si_no

escribe( ‘el valor es un impar’, R)

fin;

fin;

Page 21: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo numeros_Pos_Neg_Cer

/*este algoritmo lee desde teclado n números y determina si el número leído es positivo, negativo o cero, y

*/

PRINCIPAL

inicio

entero num, X, n;

X←1;

lee( n)

mientras (X ≤ n )

inicio

lee (num);

si (num > 0)

escribe( ‘el valor es positivo’, num);

si_no

si (num< 0)

escribe( ‘el valor es negativo’, num);

si_no

escribe( ‘el valor es igual a cero’, num);

X ← X + 1; /* contador */

fin;

fin;

Page 22: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo numeros

/*este algoritmo lee desde teclado n números, valida si el numero n de datos es valido. Determina si el número leído es posi tivo, negativo o cero y mult iplica los valores posit ivos y los acumula en una variable */

PRINCIPAL

Inicio

entero n,num, X;

X←1;

escribe (‘Dame cuantos números quieres calcular’);

lee( n);

si (n> 0);

inicio

mientras (X ≤ n )

inicio

escribe (‘ Dame el dato a calcular’)

lee (num);

si (num > 0)

inicio

mult i_Posi ← mult i_Posi * num;

escribe( ‘el valor es positivo’, num);

escribe( ‘el valor de mutiplicación acumuladas de los datos positivos’, mult i_Posi);

fin; /* fin de la bifurcacion num>0 */

si_no

inicio

si (num< 0)

escribe( ‘el valor es negativo’, num);

fin; /* fin de la bifurcacion num<0 */

si_no

escribe( ‘el valor es igual a cero’, num);

X ← X + 1; /* contador */

fin; /* fin del mientras */

fin; /* fin de la bifurcación n>0 */

fin; /* fin del inicio del algoritmo */

Page 23: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Tarea: analizar lo dos siguientes algoritmos y explicar

cual es la diferencia entre:

Algoritmo numeros y Algoritmo numeros_pos_Multiplica

comentar si están en el lugar correcto las

instrucciones y de no ser así reescribir el algoritmo

correctamente.

Realizar una prueba de escritorio.

Una prueba de escritorio: es verificar si esta

desarrollando el algoritmo lo que se le pide. En

otras palabras se tiene que verificar o seguir cada

instrucción con datos iniciales supuestos y ver si esta

haciendo lo que se pide.

Page 24: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo numeros

/*este algoritmo lee desde teclado n números y determina si el número leído es positiv o, negativ o o cero y multiplica los v alores positiv os y los acumula en una v ariable */

PRINCIPAL

inicio

entero X;

flotante num, multi_Posi;

X←1;

multi_Posi ← 0.0;

escribe (‘Dame cuantos números quieres calcular’)

lee( n)

mientras (X ≤ n )

inicio

escribe (‘ Dame el dato a calcular’)

lee (num);

si (num > 0)

inicio

multi_Posi ← multi_Posi * num;

escribe( ‘el v alor es positiv o’, num);

escribe( ‘el v alor de mutiplicación acumuladas de los datos positiv os’, multi_Posi); /*

comentar cuantas v eces se escribe el resultado e indicar en que parte deberia de ir para que solo escriba el resultado*/

fin;

si_no

si (num< 0)

escribe( ‘el v alor es negativ o’, num);

si_no

escribe( ‘el v alor es igual a cero’, num);

X ← X + 1; /* contador */

fin;

fin;

Page 25: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo numeros_pos_Multiplica

/*este algoritmo lee desde teclado n números, v alida si el numero n de datos es v alido. Determina si

el número leído es positiv o, negativ o o cero y multiplica los v alores positiv os y los acumula en una v ariable */

PRINCIPAL

Inicio

entero n,num, X;

X←1;

escribe (‘Dame cuantos números quieres calcular’);

lee( n);

si (n> 0);

inicio

mientras (X ≤ n )

inicio

escribe (‘ Dame el dato a calcular’)

lee (num);

si (num > 0)

inicio

multi_Posi ← multi_Posi * num;

escribe( ‘el v alor es positiv o’, num);

escribe( ‘el v alor de mutiplicación acumuladas de los datos positiv os’, multi_Posi);

fin; /* fin de la bifurcacion num>0 */

si_no

inicio

si (num< 0)

escribe( ‘el v alor es negativ o’, num);

fin; /* fin de la bifurcacion num<0 */

si_no

escribe( ‘el v alor es igual a cero’, num);

X ← X + 1; /* contador */

fin; /* fin del mientras */

fin; /* fin de la bifurcación n>0 */

fin; /* fin del inicio del algoritmo */

Page 26: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo Tablas_multiplicar

/*este algoritmo lee desde teclado que tabla de multiplicar se quiere determina, y además hasta que valor se quiere la tabla de multiplicar, e imprime cada valor de la tabla */

PRINCIPAL

inicio

entero n, tabla, X,Z;

X ←1;

escribe (‘Dame el valor de tabla quieres multiplicar’);

lee (tabla);

escribe (‘Dame hasta que valor quieres la tabla de multiplicar’);

lee( n)

mientras (X ≤ n )

inicio

Z ←tabla * X; /* aquí se desarrolla la tabla de multiplicar por cada elemento hasta el valor n*/

escribe(tabla, “*”, X ,”=“, Z); /* escribe cada elemento de la tabla de multiplicar */

X ← X + 1; /* contador */

fin;

fin;

Tarea : explicar cuantas tablas de multiplicar calcula este algoritmo.

Page 27: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo tablas_multiplicar_mayores_cero

/*este algoritmo lee desde teclado que tabla de multiplicar se quiere determinar. Verifica si el valor de n es mayor a cero, y además hasta que valor se quiere calcular la tabla de multiplicar, e imprime cada valor de la tabla */

PRINCIPAL

inicio

entero n, tabla, X, Z;

X ←1;

escribe (‘Dame el valor de tabla quieres multiplicar’);

lee (tabla);

escribe (‘Dame hasta que valor quieres la tabla de multiplicar’);

lee( n);

si (n >0 )

inicio

mientras (X ≤ n )

inicio

Z ←tabla * X; /* aquí se desarrolla la tabla de multiplicar por cada elemento hasta el valor n*/

escribe(tabla, “*”, X ,”=“, Z); ); /* escribe cada elemento de la tabla de multiplicar */

X ← X + 1; /* contador */

fin;

fin;

si_no

escribe (‘ Valor no es valido para realizar la tabla de multiplicar’);

fin;

Tarea : explicar cuantas tablas de multiplicar calcula este algoritmo.

Page 28: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo areas_de_un_rectangulos

/*este algoritmo calcula el área del rectángulo, lee desde teclado las variables , Determina si el valor de la base y la altura son mayores a cero */

PRINCIPAL

Inicio

flotantes area, base, altura ;

escribe (‘Dame el valor de la base’);

lee( base);

si (base> 0);

inicio

si (altura > 0 )

inicio

area← base *altura;

escribe( ‘el valor del área del rectángulo es:’, area);

fin; /* fin de la bifurcación relacionada con altura */

si_no

escribe( ‘el valor de altura no es valida’, altura);

fin; /* fin de la primera bifurcación relacionada con la base */

si_no

escribe( ‘el valor de la base no es valida’, base);

fin; /* fin del inicio del algoritmo */

Tarea : explicar cual es la diferencia entre este algoritmo y el siguiente algoritmo

Page 29: Introducción a la Programaciónaniei.org.mx/paginas/uam/Descargas/Recursos/introduccion_programacion...Introducción a la Programación Un algoritmo es un método para resolver un

Algoritmo areas_para_N_rectangulos

/*este algoritmo calcula el área de N rectángulos, lee desde teclado las v ariables ,

Determina si el v alor de la base y la altura son mayores a cero */

PRINCIPAL

Inicio

flotantes area, base, altura ;

enteros N, X;

X ←1;

escribe (‘Dame cuantos rectángulos quieres calcular’);

lee (N);

mientras (X <N )

inicio

escribe (‘Dame el v alor de la base’);

lee( base);

si (base> 0);

inicio

si (altura > 0 )

inicio

area← base *altura;

escribe( ‘el v alor del área del rectángulo es:’, area);

fin; /* fin de la bifurcación relacionada con altura */

si_no

escribe( ‘el v alor de altura no es v alida’, altura);

fin; /* fin de la primera bifurcación relacionada con la base */

si_no

escribe( ‘el v alor de la base no es v alida’, base);

X ← X + 1; /* contador del mientras*/

fin; /* fin del inicio del algoritmo */