Iniciacion de La Programacion

17
Tema 5: Iniciación a la programación En el En el ámbito informático ámbito informático , además de poder utilizar una de las aplicaciones disponibles , además de poder utilizar una de las aplicaciones disponibles en el mercado, cada una de ellas pensada por sus creadores para realizar determinadas en el mercado, cada una de ellas pensada por sus creadores para realizar determinadas tareas, también es posible diseñar y crear aplicaciones propias. Para ello, es necesario tareas, también es posible diseñar y crear aplicaciones propias. Para ello, es necesario emplear un emplear un lenguaje de programación lenguaje de programación y tener conocimientos, necesarios para crear y tener conocimientos, necesarios para crear el programa el programa Tema 5 Iniciación a la programación

description

Iniciación de la programación.

Transcript of Iniciacion de La Programacion

Page 1: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

En el En el ámbito informáticoámbito informático, además de poder utilizar una de las aplicaciones disponibles , además de poder utilizar una de las aplicaciones disponibles en el mercado, cada una de ellas pensada por sus creadores para realizar determinadasen el mercado, cada una de ellas pensada por sus creadores para realizar determinadastareas, también es posible diseñar y crear aplicaciones propias. Para ello, es necesario tareas, también es posible diseñar y crear aplicaciones propias. Para ello, es necesario emplear un emplear un lenguaje de programaciónlenguaje de programación y tener conocimientos, necesarios para crear y tener conocimientos, necesarios para crear

el programael programa

Tema 5 Iniciación a la programación

Page 2: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

1 CONCEPTO DE ALGORITMO

Introducción

La computadora no solamente es esa máquina que puede ejecutar programas que tiene previamente cargados, como un procesador de textos. Además de jugar, escribir o comunicarnos también podemos diseñar soluciones a medida de problemas específicos que se nos presenten.

A las soluciones creadas utilizando una computadora se les conoce como programas y no son mas que una serie de instrucciones ordenadas, expresadas en un lenguaje específico (llamado lenguaje de programación) que debe realizar la computadora para llegar a un resultado, con un grupo de datos específicos.

Supongamos que tenemos el siguiente problema: Repartir entre 2 chicos una bolsa de caramelos (suponemos que inicialmente la bolsa tiene más de 2 caramelos).

Este problema describe un cierto trabajo. Este trabajo debe realizarlo una máquina.

Llamamos máquina a un aparato capaz de comprender el enunciado y ejecutar el trabajo.

Sin embargo una máquina no puede realizar un trabajo si no cuenta con los recursos necesarios, por ejemplo, la bolsa de caramelos.

El conjunto de los objetos necesarios para la ejecución de un algoritmo se denomina ambiente.

Por lo tanto el ambiente de un trabajo es específico para ese trabajo. Además, para ejecutar un trabajo, se debe realizar una secuencia de acciones.

Entonces, un problema es resuelto a través de una serie de acciones que respetan una secuencia y que modifican el ambiente hasta la solución del problema

Tomado el problema anterior, puede escribirse el siguiente algoritmo:

Repetir Tomar caramelo de la bolsa Darlo a niño Hasta que la bolsa contenga menos de cuatro caramelos.

Los objetos son: caramelos , Niño Y la acción: Tomar de la bolsa

Y además hay una condición dentro de una estructura. Esta estructura repetir-hasta que, hace que la máquina evalúe si hay menos de 4 caramelos en la bolsa antes de retirarlos.

Esto es un Algoritmo.

Un algoritmo es una secuencia ordenada de acciones (llamadas “acciones primitivas”) que pueden ser ejecutadas por una máquina y que dan la solución a un problema dado.

Decimos que una acción es primitiva cuando no puede “descomponerse” en otras acciones.

Page 3: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Veamos otro ejemplo: Las acciones primitivas serán: LEER y ESCRIBIR Los objetos son los dos números: Puedo guardarlos en A y B, y otro objeto para guardar la suma (S) . Necesito que una máquina calcule la suma de dos números, y que me la muestre. Entonces, tendremos el siguiente algoritmo:

LEER A; LEER B;

S <- A + B; ESCRIBIR S;

Característica de un algoritmo

Cuando se habla de diseñar soluciones utilizando una computadora, pueden diseñarse buenas soluciones o malas soluciones. ¿Qué características debe tener un algoritmo para transformarse en una “buena solución”?

● Debe ser finito: Es decir, debe terminar en alguna parte. El número de instrucciones debe ser limitado.

● Legible: Fácil de leer y de entender

● Modificable: Debe permitir la actualización sin grandes dificultades.

● Debe ser eficiente : Para ello debe cumplir con los requisitos de rapidez y economía.

● Modular: Siempre que sea posible, debe poder dividirse en subprogramas para su mejor solución. (DIVIDE Y VENCERAS)

Algoritmo y programa

Antes dijimos que un algoritmo es una serie ordenada de pasos que se realizan para llegar a una solución. ¿Qué relación tiene con un programa?

Podemos decir que un programa es un algoritmo expresado en un lenguaje que tanto la computadora como el programador puedan entender.

Organigramas y Pseudocódigo

Pseudocódigo: Es una notación mediante la cual podemos escribir la solución a un problema dado en forma de algoritmo utilizando palabras y frases del lenguaje natural aunque sujetas a determinadas reglas impuestas. Nosotros utilizaremos el programa PseInt para compilar estos algoritmos.

Organigramas: Representan gráficamente paso a paso todas las instrucciones del programa a codificar reflejando la secuencia lógica de las operaciones necesarias para la resolución del problema. Muestra gráficamente el algoritmo del programa.

Page 4: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Ejemplo: Realizar el pseudocódigo y ordinograma de un algoritmo que permita pedir 2 números por teclado y muestre la suma de ellos.

PROCESO Sumar DEFINIR num1, num2,suma como NUMERO ESCRIBIR “Introduzca un número:”; LEER número1; ESCRIBIR “Introduzca otro número:”; LEER número2; suma ← número1 + número2 ;ESCRIBIR “Resultado:”, suma;

FIN PROCESO

Ejemplo: El pseudocódigo y ordinograma de un algoritmo que solicita un número por teclado al usuario e informa de si el número introducido es negativo (menor que cero) o no. NOTA: Las palabras reservadas deben aparecer en mayúsculas, así que las marcaremos en negrita para identificarlas claramente.

PROCESO DetectarNegativo DEFINIR número como NUMERO ESCRIBIR “Introduzca un número entero”; LEER número; SI número < 0 ENTONCES

ESCRIBIR “Es negativo”; SI NO

ESCRIBIR “No es negativo”;

FIN SI FIN PROCESO

Page 5: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

2 LENGUAJES DE PROGRAMACIÓN

INTRODUCCIÓN: INTÉRPRETES Y COMPILADORES

El software se divide en tres grandes grupos: 1. Programas de aplicación 2. Lenguajes de programación 3. Sistemas operativos

Los lenguajes de programación hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y son usados en el transcurso de muchos años, mientras que otros han sido operativos durante un período más o menos largo y actualmente no se usan. Dada esta gran variedad de lenguajes, aquí no se pretende dar una visión completa, sino una clasificación en diversos tipos y concretar alguno. Respecto al más recomendado para el aprendizaje, el Pascal

En general un lenguaje es un método conveniente y sencillo de describir las secuencias de acciones necesarias para ejecutar una tarea concreta. Pero este proceso se puede realizar de muchas maneras distintas, por lo que habrá que disponer de clasificaciones. Una muy importante es hacer dos grupos en base a su funcionamiento, esto es considerarlos como intérpretes y compiladores, según se describe seguidamente.

● Un lenguaje se dice que es un intérprete, por ejemplo los BASIC primitivos, cuando para ejecutar un programa el lenguaje ha de leer y traducir al lenguaje específico de la máquina las instrucciones una por una. Como es lógico el proceso se vuelve más lento, por ejemplo si una operación está dentro de la estructura conocida como ciclo y este se repite 100 veces, el lenguaje tiene que traducirlo 100 veces al código de la máquina. No todo son desventajas, pues la parte buena de este tipo de lenguajes es que los errores se pueden corregir al momento y seguir facilmente la ejecución del programa, por lo cual son idóneos para aprender a programar, proceso en el que da lo mismo la lentitud.

● Por contra un lenguaje se dice que es compilado cuando el programa entero se traduce mediante el compilador de dicho lenguaje al lenguaje máquina (0's y 1's) correspondiente y el resultado se almacena de manera permanente en un archivo. De esta forma el programa se ejecutará de forma mucho más rápida que con un intérprete, sobre todo si hay estructuras que se repiten, caso de los ciclos. La principal desventaja es cuando se produce un error, que muchas veces se detecta en el momento de la ejecución, y la corrección no se puede hacer de inmediato sino que hay que realizar todo el proceso de compilado desde el principio. Un ejemplo típico de lenguaje de este tipo el C++.

Page 6: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

TIPOS DE LENGUAJES

Aparte de la clasificación vista previamente en compiladores e intérpretes, los lenguajes de programación se clasifican en base a otros aspectos, de manera general en tres grandes grupos,

● Lenguaje máquina (0 y 1)

● Lenguajes de Bajo nivel: Ensamblador

● Lenguajes de Alto Nivel

El lenguaje máquina, es un lenguaje de programación en el ámbito de la CPU, por lo tanto usando ceros y unos, lenguaje muy difícil y propenso a errores.

Lenguajes de Bajo Nivel incluye los relacionados íntimamente con la arquitectura de la máquina, por lo que generalmente son específicos de una unidad central de procesamiento (CPU) y no son válidos para otra diferente. El otro más conocido dentro de esta categoría es el Ensamblador, que utiliza ordenes(instrucciones) a escala sencilla, y por lo tanto evita las secuencias de ceros y unos. Aún así es bastante complicado y no es recomendable para usuarios sin amplios conocimientos. En conclusión, un lenguaje de bajo nivel está orientado hacia la resolución de una determinada máquina.

.

A diferencia de los del grupo anterior, un lenguaje de alto nivel es independiente del microprocesador del ordenador que lo soporta, así por ejemplo un programa escrito en lenguaje C, se puede compilar sin modificar para cualquier máquina, y en principio funcionará sin ningún problema. Esto implica dos ventajas principales, una es que la persona que desarrolla los programas no ha de saber nada acerca del ordenador en que se ejecutará el programa, la otra es que los programas son portables, es decir el mismo programa (en teoría) ha de funcionar sobre distintos tipos de ordenadores.

Entre los lenguajes de alto nivel cabe destacar los siguientes: JAVA ,BASIC, FORTRAN, MODULA 2, Pascal, ADA, C, C ++, LOGO ,LISP, PROLOG, Smalltalk

Page 7: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

3 APRENDER A PROGRAMAR: PSEUDOCODIGO

INTRODUCCIÓN

Para que una computadora pueda interpretar el problema, un algoritmo debe ser escrito en un lenguaje de computación (C, Pascal, Visual Basic, Java, etc.). Sin embargo, esto lo podemos hacer cuando ya sabemos qué decir y cómo decirlo.

En el transcurso de esta asignatura, trabajaremos con una forma de lenguaje denominada pseudocódigo.

La práctica la realizaremos con un software llamado PseInt (Pseudo Intérprete), que fue desarollado por Pablo Novara, un estudiante de laUniversidad Nacional del Litoral.

Para bajar el software, e instalarlo en lacomputadora: http://pseint.sourceforge.net/

El ambiente (Conjunto de objetos) de un programa se modifica, a través de instrucciones y operaciones.

Entonces, básicamente en un algoritmo tendremos: ● Datos ● Instrucciones ● Operaciones.

TIPOS DE DATOS Y DEFINIR VARIABLES

Los datos deben ser de un determinado tipo. Un dato puede ser un simple carácter, tal como ‘b’ o un valor entero tal como 35. Entonces, tendremos los siguientes tipos:

● Numéricos: Son números con los cuales podemos hacer operaciones aritméticas. Por ejemplo: 34, 7.89; 899876 . Dentro de los datos numéricos hay distintas categorías:

Enteros Cortos (Integer)Enteros Largo (Long) De punto flotante Simple (Single)De punto flotante Doble (Double)

● Alfanuméricos (también llamados “cadenas” o “strings”): Son letras y números. Pueden ser palabras o conjunto de palabras o números teniendo en cuenta que si se consideran alfanuméricos no tendrán valor. Ejemplos:“Uriarte 789”; “Escuela de Educación Técnica Nº 7”

● Lógicos (o booleanos): Son muy simples: guardan el valor “Verdadero” o el valor “Falso”. Pueden ser muy útiles para almacenar ciertos datos, como por ejemplo el estado de un libro en una biblioteca. En este caso podría ser “prestado” o “no prestado”... esto es, el valor “prestado” puede ser falso o verdadero.

● Un vector , array , arreglo o alineación es un conjunto o agrupación de variables del mismo tipo cuyo acceso se realiza por índices. Ejemplo: Alumno(1) (si es unidimencional); Clase (0,3) (si es bidimencional)

Page 8: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Una VARIABLE es un objeto cuyo valor puede variar, y que posee además los siguientes atributos: Un nombre que lo designa (o i dentificador)

● Un tipo ● Un rango máximo y mínimo (o sea, los

valores que puede almacenar)

Instrucciones básicas de PSEINT

La instrucción de lectura (LEER) consiste en recibir desde un dispositivo de entrada (el teclado, el ratón, un archivo) un valor, y guardarlo en una variable. Ejemplo:

LEER numero1;

La instrucción de escritura (ESCRIBIR) consiste en mandar por un dispositivo de salida (monitor, impresora, archivo) un resultado o mensaje. Ejemplo:

ESCRIBIR numero1;ESCRIBIR “El resultado es:”,numero1; //Escribe la frase entre comillas y el valor de la variable numero1

Variables: Supongamos que se tiene que calcular la superficie de determinado triángulo: El algoritmo puede ser:

A<-30; B<-20 ;

Sup <-(A*B)/2; ESCRIBIR sup;

Esto sirve para un triángulo de 20 cm de altura y 30 de base. Si queremos que nuestro algoritmo sirva para todos los triángulos, no podríamos dar valores para A y B hasta que se ponga en marcha el programa. En ese caso, sería:

LEER A; LEER B;

Sup<-(A*B)/2; ESCRIBIR sup;

De esta manera los valores A y B cambian según el triángulo. A estos objetos (A y B) se los llama variables.

DEFINIR VARIABLES DEFINIR una variable es “crearla”, informar a la máquina que existe y que tiene un tipo

determinado. El ordenador reservará la cantidad de memoria necesaria para esa variable.

Cuando se crea una variable se debe especificar su nombre y su tipo.

En el programa PSEINT las variables se declaran:

DEFINIR nombre_variable COMO NUMERODEFINIR nombre_variable COMO LOGICODEFINIR nombre_variable COMO CARACTER

Los vectores o arrays se declaran:

Dimension nombre_variable(tamaño); //UnidimencionalDimension nombre_variable(tamaño,tamaño); //Bidimencional

CONSTANTES Además, podemos encontrarnos con distintos elementos que no cambian su valor a lo largo de

todo el algoritmo. Ejemplo:En la fórmula de perímetro del círculo,

Page 9: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Per <- pi* d; (d es el diámetro) Pi no cambia su valor, por lo tanto es una constante.

Ejemplo de programa

Proceso Saludo DEFINIR nom,apelli COMO CARACTER DEFINIR edad COMO NUMERO ESCRIBIR “¿Cual es tu nombre?”; LEER nom; ESCRIBIR “¿Cual es tu apellido?”; LEER apelli; ESCRIBIR “¿Cual es tu edad?”; LEER edad; ESCRIBIR “Encantada de conocerte ”, nom, apelli, edad; FINProceso

EXPRESIONES ARITMETICAS, RELACIONALES Y LÓGICAS

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo: a+(b + 3)/c

EXPRESIONES ARITMÉTICAS

Sirven para realizar operaciones matemáticas entre las variables y constantes

+ Suma - Resta * Multiplicación / División Mod Módulo (resto de la división entera) ^ Potencia

Expresión Resultado 7 / 2 3.5 12 mod 7 5 4 + 2 * 5 14 3 + 5 * (10 - (2 + 4)) 23

Prioridad de los Operadores Aritméticos ● Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con

paréntesis anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa primero.

● Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1. ^ (potencia), raíz 2. *, /, mod (Multiplicación, división, modulo). 3. +, - (Suma y resta). 4. Los operadores en una misma expresión con igual nivel de

prioridad se evalúan de izquierda a derecha.

Page 10: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Funciones aritméticas

Función Significado

RC(X) Raíz Cuadrada de X

ABS(X) Valor Absoluto de X

LN(X) Logaritmo Natural de X

EXP(X) Función Exponencial de X

SEN(X) Seno de X

COS(X) Coseno de X

ATAN(X) Arcotangente de X

TRUNC(X) Parte entera de X

REDON(X) Entero más cercano a X

AZAR(X) Número aleatorio menor a X

EXPRESIONES RELACIONALES

Se utilizan para establecer una relación entre dos valores. Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). Estas son:

> (Mayor que) < (Menor que) > = (Mayor o igual que) < = (Menor o igual que) < > (Diferente) = (Igual)

Ejemplos: Si a = 10 b = 20 c = 30

a + b > c Solución: Falso a - b < c Solución: Verdadero

Lo que no se puede hacer: a < b < c debe expresarse: a>b y b>c

EXPRESIONES LÓGICAS

Estos operadores se utilizan para establecer relaciones entre valores lógicos, y pueden ser el resultado de una expresión de relación.

And (Y) Or (O) Not (Negación) Xor (O excluyente)

SENTENCIA DE SELECCIÓN

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 dentrodel programa. Cabe mencionar que la comparación se puede hacer conra otra variable o contra una constante, según se necesite.

Page 11: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

SIMPLES

Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Si <condición> entonces AcciónAcción Acción

FINSI

Esto significa que no hay un “sino”... la acción se hace solo en un caso.

DOBLES

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Si <condición> entonces Acción(es) 1

sino Acción(es) 2

FINSI

SELECCIÓN ANIDADAS

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 <condición> ENTONCESAcción(es)

SINOSI <condición> ENTONCES

Acción(es) SINO

Acción(es) FINSI

FINSI

MULTIPLES

Ahora bien... Qué ocurre si tenemos que realizar el siguiente algoritmo? “Leer un número del 1 al 7 y ESCRIBIR a qué día de la semana corresponde “ (Un simple algoritmo de redacción de fecha)... Lo podriamos resolver con sentencias de selección anidadas una dentro de otra (explicadas anteriormente), pero esta opción se puede sustituir por una forma más eficiente como la selección multiple

La nueva estructura funciona, entonces, tomando el valor de la variable como un “selector” automático.

Page 12: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

LEER z; SEGUN z HACER

1: acciones; 2, 3, 4: acciones; 5: Acciones;

De otro modoMas acciones;

Finsegún

El problema expuesto al principio quedaría resuelto de la siguiente manera

PROCESO DiasDEFINIR X COMO NUMEROLEER X; Según X hacer

1: ESCRIBIR ‘DOMINGO’; 2: ESCRIBIR ‘LUNES’; 3: ESCRIBIR ‘MARTES’; 4: ESCRIBIR ‘MIÉRCOLES’; 5: ESCRIBIR ‘JUEVES’; 6: ESCRIBIR ‘VIERNES’; 7: ESCRIBIR ‘SÁBADO’;

DE OTRO MODO ESCRIBIR ‘ERROR’;

Finsegún FinProceso

Recomendación: Cuanto trabajamos con estructuras, conviene utilizar la tabulación y colocar más a la izquierda las instrucciones que están más adentro. Esto contribuye a hacer más legible el algoritmo y encontrar más fácilmente los errores.

Ejemplos resueltos

Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $500, y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta.

PROCESO Interes DEFINIR int, cap, capf COMO NUMERO LEER int, cap; int <- cap * int; Si int > 500 ENTONCES

capf <- cap + int; FINSI ESCRIBIR capf; FINPROCESO

Determinar si un alumno aprueba o suspende un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 5; reprueba en caso contrario.

PROCESO Notas DEFINIR calif1, calif2, calif3, prom COMO NUMERO LEER calif1, calif2, calif3; prom <- (calif1 + calif2 + calif3)/3; SI prom >= 5 ENTONCES

Escribir "alumno aprobado"; SINO

Escribir "alumno suspenso"; FINSI

Page 13: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

FINPROCESO

SENTENCIA DE ITERACIÓN

Este tipo de estructuras que permiten reiterar una serie de instrucciones se llaman “ciclos” o Bucles. Hay varios casos de bucles.

BUCLE PARA (NÚMERO DE VECES)

Son aquellos en que el número de repeticiones se conoce antes de iniciarse el algoritmo.

En general, la estructura es: Para contador <- inicio hasta fin Hacer

Accion1; Accion2; . ....AccionN ;

Finpara

Donde: contador es la variable que “cuenta” el número de veces que se incrementa el ciclo inicio: de donde empieza fin: en qué número termina.

Contadores: son variables especiales que “cuentan” algo... un evento, un número de veces, etc.

Ejercicio ResueltoCalcular el promedio de un alumno que tiene 7 calificaciones en la materia de Algoritmo.

Proceso notas Definir sum, calif, prom como numero

Para c ←1 hasta 7 hacer LEER calif; Sum = sum + calif;

Finpara prom ← sum /7; ESCRIBIR prom; FinProceso

BUCLE MIENTRAS-QUE (CONDICIÓN)

Sin embargo, puede darse el caso de que no sepa cuantas veces tendremos que realizar las acciones. En estos casos, la cantidad de veces que se cumplan las acciones estará dada por alguna condición (ejemplos):

● Procesar las notas hasta que se ingrese un –1. ● Procesar los datos hasta que no haya más en el archivo. ● Mientras haya facturas, sumarlas.... ● y muchas más

La estructura es:

Page 14: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

Mientras <condición> hacer Accion1; Accion2; . .....AccionN ;

Finmientras

EJEMPLOS RESUELTOSSupongamos que deben sumarse una serie de valores positivos. Se ESCRIBIRA el resultado cuando se ingrese un número menor o igual a cero, PERO POR EL MOMENTO, NO SE CUÁNTOS NÚMEROS SE INGRESAN.

Proceso SUMA2 Definir x, suma como numero Leer x; Mientras x > 0 hacer

Suma <- suma + x; Leer x;

FinMientras Escribir suma; FinProceso

BUCLE REPETIR- HASTA (HASTA UNA CONDICION)

Esta estructura permite realizar el proceso al menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el MIENTRAS puede ser que nunca llegue a entrar si la condición no se cumple desde un principio.

La forma de esta estructura es la siguiente:

Repetir Accion1; Accion2; . . AccionN ;

Hasta que <condición>

EJERCICIO RESUELTOSupongamos que se desea sumar los importes de las facturas emitidas durante el día (suponemos que al menos se vendió un artículo).

Proceso suma3 Definir suma, importe como numero REPETIR

LEER importe; Suma <- suma + importe;

HASTA QUE importe < 0 ESCRIBIR suma; FINProceso

Page 15: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

EJERCICIOS

TEORÍA

1) ¿Qué es un organigrama?

2) Diferencia entre compilador e intérprete.

3) Características de un algoritmo

4) Ventajas de un lenguaje de alto nivel con uno de bajo nivel. Pon ejemplos de cada uno

5) Tipos de datos que puede contener un algoritmo.

6) ¿Que es un algoritmo?¿Y un programa?

7) Diferencia entre el bucle REPETIR-HASTA, MIENTRAS-QUE y PARA

8) Tipos de sentencias de SELECCIÓN

ALGORITMOS CON OPERACIONES BÁSICAS

9) Introduce un número por teclado y devuelve el doble.

10) Dado dos números que el usuario muestre la suma, resta, multiplicación, división y la raíz de uno de los números.

11) Supongamos que un individuo desea invertir su capital (pedir por teclado) en un banco y desea saber cuanto dinero ganará después de un mes si el banco paga a razón de 2% mensual.

12) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. Pide por teclado el precio del articulo

13) Un maestro desea saber que porcentaje de niños y que porcentaje de niñas hay en un grupo de estudiantes. Pide por teclado el numero de alumnos y muestra su porcentaje.

14) Leer un número y escribir el valor absoluto del mismo. Utiliza la fórmula ABS(numero)

15) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

16) Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera. Pide por teclado los tiempos de cada uno de los tres días.

ALGORITMOS CON SENTENCIAS DE SELECCIÓN

17) Leer dos números por teclado e imprimir el menor de los 2.

18) Modifica el anterior ejercicio para que lea tres números por teclado e imprimir el mayor de los 3.

19) Introduce dos números por teclado. Devuelve el resultado de la división y comprueba con el operador MOD si la división es exacta o no.

Page 16: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

20) En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el número escogido es menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el descuento es del 20%. Obtener cuanto dinero se le descuenta.

21) El gobierno desea reforestar los bosques. Si la superficie del terreno excede a 1 millón de metros cuadrados, entonces decidirá sembrar de la sig. manera:

Porcentaje de la superficie del bosque Tipo de árbol

70% pino 20% eucalipto

10% cedro

Si la superficie del terreno es menor o igual a un millón de metros cuadrados, entonces decidirá sembrar de la sig. manera:

Porcentaje de la superficie del bosque Tipo de árbol

50% pino 30% eucalipto

20% cedro

El gobierno desea saber el número de pinos, eucaliptos y cedros que tendrá que sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 eucaliptos y en 18 metros cuadrados caben 10 cedros. Pide por teclado en mumero de metros cuadrados que se quieren reforestar.

22) En un juego de preguntas a las que se responde “Si” o “No” gana quien responda correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son: (Utiliza variables booleanas y el conector AND). Puedes cambiar las preguntas.

1. Colon descubrió América? 2. La independencia de México fue en el año 1810? 3. The Doors fue un grupo de rock Americano?

23) (Selección múltiple) Se leen los números A, B, y OP, se pide realizare las operaciones de acuerdo al codigo de operación op, de la siguiente manera:

si op = 1 entonces A+B; si op = 2 entonces A-B; si op = 3 entonces a*b; si op = 4 entonces a/b

24) (Selección múltiple) Realizar un algoritmo que al ingresar un número, me devuelva el mes correspondiente.

ALGORITMOS CON SENTENCIAS DE ITERACIÓN

25) (Bucle Para)Imprimir 10 números a partir del 22.

26) (Bucle Para)Leer 5 números y obtener su doble.

27) (Bucle Para)Leer 10 números e imprimir solamente los números positivos.

28) (Bucle Para)Modifica el ejercicio 27 para que te devuelva la misma lista de números pero en orden contrario al almacenado (desde el último al primero)

Page 17: Iniciacion de La Programacion

Tema 5: Iniciación a la programación Profesor Antonio Morente

29) (Bucle Para)Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros.

30) (Bucle Para)Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto.

31) (Bucle Mientras-que)Determinar cuantos hombres y cuantas mujeres se encuentran en un grupo de n (pide por teclado) personas, suponiendo que los datos son extraídos alumno por alumno.

32) (Bucle Mientras-que)Obtener el promedio de calificaciones de un grupo de n alumnos.

33) (Bucle Mientras-que)Encontrar el mayor valor de un conjunto de n números dados.

34) (Bucle Repetir-hasta) Realizar un algoritmo que calcule el factorial de un número dado.

35) (Bucle Repetir-hasta)Calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden

ALGORITMOS GENERALES

36) Pedir la edad al usuario y mostrar por pantalla si es menor o mayor de edad. (Se considera un error meter un número negativo)

37) Pedir un número al usuario y mostrarle de qué día de la semana se trata. (En otro caso se mostrará un mensaje de error, y no volverá).

38) Hacer el 37 pero si introduce un número menor de 1 o mayor de 12, volver a pedir dicho valor

39) Generar una lista del 1 al 10

40) Generar una lista del 2 al 20 de dos en dos

41) Generar una lista de potencias de 2, desde el 2 hasta el 256 (2,4,8,16...)

42) Almacena 10 números en un vector e imprime los que ocupen las posiciones impares.

43) Generar una cuenta atrás desde el número que introduzca el usuario hasta el 0 inclusive y acabar mostrando Booom! (Si mete un negativo sería error)

44) Como el 42 pero si mete un negativo, hacemos que cuente también hacia el 0 (-4,-3,-2,-1,0,booom)

45) Que el usuario vaya introduciendo números mientras no acierte un número que tu elijas de antemano

46) Igual que el 44, pero que al final le digas el número de intentos

47) Igual que el 45, pero que según el número de intentos le muestres un mensaje diferente si lo ha hecho de 0 a 3 intentos, de 4 a 6 o de 7 en adelante

48) Igual que el 46, pero en lugar de elegir tú el número, que lo elija aleatoriamente el ordenador de 0 a 10 (mira la documentación en la web o la ayuda del programa para hacerlo, no es tan difícil)