Introducción a la Programación...Introducción a la Programación Dentro del cuerpo del programa...
Transcript of Introducción a la Programación...Introducción a la Programación Dentro del cuerpo del programa...
Introducción
a la
Programación
M.C. LOURDES SÁNCHEZ GUERRERO
Introducción a la
Programación Un algoritmo es un método para resolver un problema, debe
presentarse 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.
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
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
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
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
.
.
Estructuras de Control de
SecuenciaEjemplo:
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
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
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
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.
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
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;
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.
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
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
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 );
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);
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;
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;
Estructuras de Control de Ciclo mientras
Algoritmo producto_valores
/*este algoritmo es un ejemplo de la estructura mientras, con contador y acumulador, calcula el producto de los datos leídos desde teclado */
PRINCIPAL
Inicio
flotante R, multiplica;
entero X;
multiplica ← 1; X←0;
mientras (X ≤10 )
inicio
lee( R);
si (R >-10.0)
inicio
si ( R < 18.0)
inicio
multiplica ← multiplica * R; /*este es el acumulador de los valores del producto */
escribe( ‘el valor total del producto de los datos es:’, multiplica);
X ← X + 1; /* contador * /
si_no
escribe(‘El valor no es valido es mayor a 18.0’);
fin;
si_no
escribe(‘ El valor no es valido es menor a 10.0’);
fin;
fin;
Algoritmo numeros
/*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;
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;
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 positivo, negativo o cero y multiplica los valores positivos 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
multi_Posi ← multi_Posi * num;
escribe( ‘el valor es positivo’, num);
escribe( ‘el valor de mutiplicación acumuladas de los datos positivos’, multi_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 */
Algoritmo numeros
/*este algoritmo lee desde teclado n números y determina si el número leído es positivo, negativo o cero y multiplica los valores positivos y los acumula en una variable */
PRINCIPAL
inicio
entero num, X;
X←1;
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 valor es positivo’, num);
escribe( ‘el valor de mutiplicación acumuladas de los datos positivos’, multi_Posi);
fin;
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;
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;
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
tabla ←tabla * X; /* aquí se desarrolla la tabla de multiplicar por cada elemento hasta el valor n*/
escribe( X ‘=’, tabla ‘*’ , X ); /* escribe cada elemento de la tabla de multiplicar */
X ← X + 1; /* contador */
fin;
fin;
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;
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
tabla ←tabla * X; /* aquí se desarrolla la tabla de multiplicar por cada elemento hasta el valor n*/
escribe( X ‘=’, tabla ‘*’ , X ); /* 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;
Algoritmo numeros_pos_Multiplica
/*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 positivo, negativo o cero y multiplica los valores positivos 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
multi_Posi ← multi_Posi * num;
escribe( ‘el valor es positivo’, num);
escribe( ‘el valor de mutiplicación acumuladas de los datos positivos’, multi_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 */
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 alturason 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 */
Algoritmo areas_para_N_rectangulos
/*este algoritmo calcula el área de N rectángulos, 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 ;
enteros N, X;
X ←1;
escribe (‘Dame cuantos rectángulos quieres calcular’);
lee (N);
mientras (X <N )
inicio
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);
X ← X + 1; /* contador del mientras*/
fin; /* fin del inicio del algoritmo */
Estructuras de Control de Ciclo
desde
Ejemplo:
entero X, M;
entero M ← 30;
desde(X←1; X ≤10; X ←X+1)
M ← X + 2
Ejemplo:
entero X, M;
M ← 30;
desde(X←1; X ≤10; X ←X+1)
inicio
M ← X + 2;
escribe( ‘el valor es’, M);
fin