La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Fundamentos de Programación

Presentaciones similares


Presentación del tema: "Fundamentos de Programación"— Transcripción de la presentación:

1 Fundamentos de Programación
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA UPSE Fundamentos de Programación Docente: Ing. Alexis Rocha Haro, MGTI Ingeniero en Sistemas Computacionales Magíster en Gerencia de Tecnologías de la Información La Libertad, Santa Elena, Ecuador Fundamentos y Lenguaje C

2 Bibliografía Bibliografía Básica:
Joyanes Aguilar Luis (2008). Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos (4ta. Edición) Madrid. Editorial: McGraw Hill. Páginas: 45 – 81. Bibliografía Recomendada: Corona Nakamura María Adriana, Ancona Valdez María de los Ángeles (2011). Diseño de algoritmos y su codificación en lenguaje C (1era. Edición) México. Editorial: McGraw Hill. Páginas: 27 – 127, 285 – 290. Cairó Battistutti Osvaldo (2006). Fundamentos de Programación: Piensa en C (1era. Edición) México. Editorial: PEARSON Educación. Páginas: 49 – 84, 89 – 128.

3 ¿Qué se quiere aprender al finalizar el Capítulo 3?
Definir un análisis adecuado para un mejor diseño y resolución de problemas planteados. Representar y desarrollar algoritmos que empleen todas las estructuras algorítmicas, para ser utilizadas en el desarrollo de ejercicios prácticos.

4 Algoritmos y Pseudocódigos
Capítulo 3 Algoritmos y Pseudocódigos

5 Unidad 3 – Algoritmos y Pseudocódigos
CONTENIDOS 3.1. Análisis del Problema, Diseño del Algoritmo, Resolución del Problema. 3.2. Representación del Algoritmo. 3.3. Estructuras Algorítmicas. 3.4. Ejercicios de Aplicación. 3.5. Evaluación de la Unidad.

6 Análisis del Problema, Diseño del Algoritmo, Resolución del Problema
RESOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN Existen 3 fases para la identificación y resolución de problemas: Fase de Identificación (qué nos plantean). Fase de Resolución del Problema. Fase de Implementación (realización) en un lenguaje de programación. Fase de Resolución del Problema Esta fase incluye: Análisis del Problema, así como el diseño y posterior verificación del algoritmo. 3.1. Análisis del Problema, Diseño del Algoritmo, Resolución del Problema

7 Análisis del Problema: Se debe tener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo, definiendo datos de entrada y salida, para ello es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren (tipo y cantidad)?: Datos de Entrada (DE) ¿Qué método produce la salida deseada?: Modelo Matemático (MM) ¿Cuál es la salida deseada (tipo y cantidad)?: Datos de Salida (DS)

8 Diseño del Algoritmo: Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y expresado en lenguaje natural, todo algoritmo debe ser: Preciso: Indicando el orden de realización de cada uno de los pasos. Definido: Si se sigue el algoritmo varias veces proporcionándoles los mismos datos, se deben obtener siempre los mismos resultados. Finito: Al seguir el algoritmo, este debe terminar en algún momento, es decir, tener un número finito de pasos.

9 Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como el método descendente (Top-Down) En un algoritmo se debe considerar 3 partes: Entrada: Información dada al algoritmo. Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos realizados.

10 Especificaciones de Entrada:
¿Qué datos son de entrada? ¿Cuántos datos se ingresarán? ¿Cuántos son datos de entrada válidos? Especificaciones de Salida: ¿Cuáles son los datos de salida? ¿Cuántos datos de salida se producirán? ¿Qué formato y precisión tendrán los resultados?

11

12 Representación del Algoritmo
Es una serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso y que conducen a la resolución de un problema. Los Algoritmos pueden representarse gráficamente empleando diferentes formas y/o técnicas, de esta manera, son fácilmente comprensibles, también los algoritmos son más universales, pues no dependen de un lenguaje de programación específico. Los métodos más usados para representar un algoritmo son: Diagramas de Flujo de Datos (DFD) Diagramas de N-S (Nassi - Schneidermann) Lenguaje de Especificaciones de Algoritmos Pseudocódigo Lenguaje natural (español) Fórmulas Matemáticas 3.2. Representación del Algoritmo

13 Características de los Algoritmos
FINITUD Si se sigue un algoritmo, se debe terminar en algún momento. PRECISIÓN Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. ENTRADAS Y SALIDAS Un algoritmo debe estar definido, si se sigue un algoritmo 2 veces, se debe obtener el mismo resultado cada vez. EFECTIVIDAD La definición de un algoritmo describe 3 partes: entrada, proceso y salida. Un algoritmo implica generalmente alguna entrada (algo que existe y es utilizado por el algoritmo), también produce resultados denominados como salida.

14 Técnicas de Representación

15 Ejemplos – Parte 1

16 Ejemplos – Parte 2

17 Ejemplos – Parte 3

18 Estructuras Algorítmicas
> Secuenciales o Simples: Entrada, Asignación (Proceso) y Salida > Condicionales, Selectivas o Alternativas: SIMPLES: If (Si) Estructuras DOBLES: If – Else (Si – Caso contrario) MÚLTIPLES: If Anidados, Switch o Case(En caso de) > Cíclicas o Repetitivas: While (Mientras), Do While (Hacer mientras), For (Para) Cualquier programa puede ser desarrollado utilizando una sola estructura o la combinación de varias estructuras, sean: Secuenciales, Condicionales o Cíclicas. 3.3. Estructuras Algorítmicas

19 Estructuras Secuenciales
Son aquellas en la que una acción, tarea, proceso o instrucción sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta finalizar el proceso. ENTRADA (Lectura) Consiste en recibir un valor (dato) desde un dispositivo de entrada (teclado). Ej.: Leer(a); Leer(b); SALIDA (Escritura) Consiste en enviar por un dispositivo de salida (monitor o impresora), un resultado o mensaje. Ej.: Escribir(“El resultado es: ”); Escribir(R); Escribir(“El resultado es: ”, R);

20 ASIGNACIÓN (Proceso) Consiste en el paso de valores o resultados a una zona de memoria (RAM), dicha zona será reconocida con el nombre de la variable que recibe el valor, la asignación se clasifica de la siguiente forma: Simples: Consiste en pasar un valor constante a una variable (a=15) Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a = a + 1) Acumulador: Consiste en usarla como un sumador en un proceso (a = a + b) De trabajo: Donde se puede recibir el resultado de una operación matemática que involucre una o muchas variables (a=c+b*2/4)

21 Estructuras Condicionales, Selectivas o Alternativas
SENTENCIA IF Simples La sentencia If realiza una condición o pregunta, si la condición se cumple, se ejecuta uno o varios procesos por Verdadero, caso contrario no ejecuta nada por Falso. Dobles La sentencia If realiza una condición o pregunta, puede ejecutar un proceso por Verdadero u otro proceso por Falso. NOTA: La sentencia If valida la pregunta por Verdadero. If Simple (If) If Doble (If - Else)

22 MÚLTIPLES (IF ANIDADOS)
La Sentencia If Anidada es similar a la Sentencia If tradicional, solo que incluye una o más condiciones dentro de la primera condición, sea por Verdadero y/o Falso.

23 MÚLTIPLES (SWITCH O CASE)
La Sentencia Switch valida una sola variable, de esa validación se pueden ejecutar varios procesos; es decir, se pueden dar múltiples opciones o salidas.

24 CASO ESPECIAL DE LA SENTENCIA SWITCH O CASE
Es el mismo procedimiento que la Sentencia Case (Switch), sólo que añade un último proceso por defecto (por default), en caso obligado de que ninguna entrada se realice o se ejecute.

25 USO DE SENTENCIAS SWITCH EN MENÚS
Es la misma ejecución que la Sentencia Switch, solo que reemplaza los Procesos por Funciones. Las Funciones se las declara por separado y es como definir otra función Main().

26 Estructuras Cíclicas o Repetitivas
BUCLES Un Bucle o Ciclo es una sentencia que se realiza repetidas veces a una parte aislada de código, hasta que la condición asignada a dicho bucle deje de cumplirse. Generalmente, un Bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, ahorrando tiempo, deja el código más claro y facilita su modificación en el futuro. El Bucle y los Condicionales representan la base de la programación estructurada, los 3 bucles más utilizados son: > While (Mientras) > Do While (Hacer Mientras) > For (Para) BUCLES ANIDADOS Un Bucle es un proceso o sentencia que se repite N veces, anidado significa que está un bucle dentro de otro. Ejemplo: Puede darse el caso de que una sentencia esté dentro de una misma clase de sentencia; así como también, una sentencia esté dentro de otra sentencia diferente.

27 SENTENCIA WHILE (MIENTRAS)
La Sentencia While primero realiza una pregunta o condición, si ésta se cumple (es Verdadera) entra a realizar un bucle repetitivo, finaliza cuando la condición o pregunta es Falso. Sintaxis: while(condición) { sentencias; }

28 SENTENCIA DO WHILE (HACER MIENTRAS)
La Sentencia Do While primero realiza uno o varios procesos, luego realiza una pregunta o condición, si ésta se cumple (es Verdadera) entra a realizar un bucle repetitivo, finaliza cuando la condición o pregunta es Falso. Sintaxis: do { sentencias; }while(condición);

29 SENTENCIA FOR (PARA) La sentencia For es la más completa de las estructuras de control, tiene a su vez, los siguientes parámetros: Sintaxis: for( valor_inicial; condición o pregunta; incremento o decremento ) { sentencias; }

30 Ejercicios de Aplicación 1
Realice un programa que ingrese 2 números por teclado y presente su número mayor. Realizar un programa que ingrese un número y presente en pantalla si es PAR o IMPAR. Realice un programa que ingrese un número y calcule su raíz cuadrada. Elabore un flujograma en el ingrese 3 números, se debe obtener la suma y promedio, cuando presente los resultados debe presentar «La Suma es: » y «El Promedio es: ». Ingrese 2 números por teclado, presente por pantalla y realice el producto de ambos números, finalice cuando ingrese el número 9999. Ingresar un número entre 1 al 7, de acuerdo al número ingresado presente por pantalla el día de la semana. Realizar un programa que lea un número comprendido entre 1 y 5, presente por pantalla la vocal A, E, I, O, U, en función del número leído. El programa debe avisar al usuario en caso de que el valor introducido no esté en el intervalo (1 al 5). Elabore un programa que lea una letra del abecedario y presente al usuario si se trata de una vocal o no. Escriba un programa que permita ingresar un número cualquiera e indique si el mismo es positivo, negativo o 0 (cero). Ingrese un número comprendido entre 0 y 7, de acuerdo a su ingreso calcule y presente en pantalla su respectivo binario en sistema octal. 3.4. Ejercicios de Aplicación

31 Ejercicios de Aplicación 2
11) Ingrese 2 números por teclado, presente por pantalla y calcule 20 sumas. 12) Escriba un programa que calcule la fórmula general de la raíz. 13) Escriba un programa donde se ingrese el tiempo necesario para un cierto proceso en horas, minutos y segundos. Se calcula el costo total del proceso sabiendo que el costo por segundo es de $0,25 (debe salir por pantalla el tiempo expresado en horas, minutos, segundos, el costo por segundo y el costo total). 14) Una farmacia aplica al precio de los remedios el 10% de descuento. Hacer un programa que ingresado el precio, calcule el descuento y el precio final, sacando por pantalla la siguiente información: Precio: $ 5 Descuento: $ - 0,50 (10%) Total a Pagar: $ 4,50 15) Escribir los 20 primeros múltiplos de 5, calcule y presente la suma acumulada. 16) Elabore un programa que presente en pantalla 4 columnas que deben contener las 4 primeras potencias de los 20 primeros números. 17) Elabore un programa que resuelva los siguientes productos notables: (EDITAR) a. (x + y)2 b. (x - y)2 c. ()

32 Ejercicios de Aplicación 3
18) Elabore un programa que permita ingresar por teclado, el nombre y el salario de un asociado, proporcione como salida el nombre y cuota del asociado, teniendo en cuenta la siguiente tabla de cuota: Salario Cuota Menos de $150 $2,00 Entre $150 y $300 $2,50 + 1,5% del excedente sobre 150 Más de $300 $3,00 + 2,5% del excedente sobre 300 19) Elabore un programa de manera que a partir de las coordenadas de 3 puntos en el plano que se debe ingresar por teclado, indique si esa terna de 3 puntos forman o no, un triángulo equilátero. 20) Elabore un programa que calcule el salario mensual de los obreros, para ello se ingresa por teclado el nombre y horas trabajadas en la semana por el obrero, el salario se calcula de la siguiente manera: Si trabaja 40 horas o menos, se le paga $5 por cada hora trabajada. Si trabaja más de 40 horas, se le paga $5 por las primeras 40 horas y $6,50 por cada hora superior a las 40. 21) Ingresar 2 números enteros positivos y presentar en pantalla la suma de esos números si el 1er. número es mayor que el 2do. número; y el producto en caso de ser el 2do. número mayor que el 1er. número.

33 Ejercicios de Aplicación 4
22) Ingresar 2 números enteros positivos y presentar en pantalla el producto de esos 2 números por sumas sucesivas (4 x 3 = 12, 4+4+4=12) 23) Elabore un programa que a partir del ingreso de un número positivo N cualquiera, de como salida el valor de S = 1 + ½ + 1/3 + … + 1/N 24) Se desea desarrollar un sistema que lleve el control de las votaciones estudiantiles en la UPSE, donde se ingrese los siguientes datos: SEXO(1=Masculino, 2=Femenino), EDAD, ESTADO CIVIL(1=Soltero, 2=Casado) El programa debe calcular e imprimir lo siguiente: El número de hombres solteros que pueden votar. El número de hombres casados que pueden votar. El número de mujeres solteras que pueden votar. El número de mujeres casadas que pueden votar. El total de personas solteras que pueden votar. El total de personas casadas que pueden votar. El total de personas que pueden votar.

34 Ejercicios de Aplicación 5
25) En una central telefónica se procesan las llamadas realizadas de la siguiente manera: Por cada llamada se ingresa el código de llamada (entero > 0) Tipo de llamada (1=hábil, 2=feriado) Duración en minutos (entero > 0) Los importes de las llamadas son los siguientes: Tipo de Día Primeros 3 minutos Minuto Adicional Hábil $0,10 cada minuto $0,02 cada minuto adicional Feriado $0,15 cada minuto $0,03 cada minuto adicional Se pide elaborar un diagrama de flujo con la correspondiente codificación que presente en pantalla: El importe a abonar por cada llamada (código e importe). La cantidad de llamadas que superen los 3 minutos. El porcentaje de llamadas que superen los 3 minutos (sobre el total de llamadas ingresadas).

35 Ejercicios de Aplicación 6
26) Para identificar las ventas que se realizan diariamente en un negocio de venta de automóviles, se usa la variable de entrada CODIGO DE VENTAS, la cual se debe validar con los siguientes valores: Código de Venta Significado 1 Identifica las ventas de autos nuevos. 2 Identifica las ventas de autos usados. 3 Identifica las ventas de repuestos. La comisión de un vendedor es la siguiente: 3% en la venta de autos nuevos, sin que éste sobrepase los $20000. 5% del precio en venta de autos usados, asegurándole al menos $12000. 6% del precio en venta de repuestos. Con estos antecedentes se pide: Elaborar un diagrama de flujo con su respectiva codificación en el que se ingrese por teclado el nombre del vendedor, el código de ventas y el valor de ventas; y produzca como salida: a. Tipo de venta y comisión: El tipo de venta es una cadena de caracteres cuyo valor va a depender del código de venta de la siguiente manera: Si el Código de Venta = 1 Tipo de Venta = «NUEVOS» Si el Código de Venta = 2 Tipo de Venta = «USADOS» Si el Código de Venta = 3 Tipo de Venta = «REPUESTOS» b. Promedio de venta y promedio de comisión. c. El valor de la venta más alta y el valor de la venta más baja.

36 Ejercicios de Aplicación 7
27) Para las elecciones de la ASO-ESCUELA de la Universidad, se tienen 3 listas de candidatos codificados como A, B, C y 3 mesas electorales codificadas como 1, 2, 3 respectivamente. Se pide elaborar un diagrama de flujo y la codificación, que controle los resultados de estas elecciones, de forma que se ingrese por teclado el código de la mesa electoral, el código de la lista y el número de votos debidamente validados y presente como salida: Por cada mesa electoral, el código de la mesa electoral, el código de la lista y el total de votos en esa mesa, de la lista que mayor votos obtuvo. El total de votos por cada una de las listas, indicando la lista ganadora de las elecciones. 28) Ingresar un número cualquiera y presentarlo en forma invertida. 29) Genere la tabla de multiplicar del 5 (del 1 al 12). 30) Ingrese por teclado un número entre 1 al 12, calcule y presente su respectiva tabla de multiplicar (1-12). 31) Realice un menú de opciones que genere las 4 operaciones básicas desde el 1 hasta el 12 (Funciones).

37 Tarea 1 – 1/1 Semestre y 1/2 Semestre
Ejercicio 13: Escriba un programa donde se ingrese el tiempo necesario para un cierto proceso en horas, minutos y segundos. Se calcula el costo total del proceso sabiendo que el costo por segundo es de $0,25 (debe salir por pantalla el tiempo expresado en horas, minutos, segundos, el costo por segundo y el costo total). Al finalizar el programa deberá repetir con las siguientes opciones (C=Continuar, S=Salir). Ejercicio 23: Elabore un programa que a partir del ingreso de un número positivo N cualquiera, de como salida el valor de la serie, por ejemplo: S = 1 + ½ + 1/3 + … + 1/N. Calcule y presente la serie y el resultado. Al finalizar el programa deberá repetir con las siguientes opciones (333=Continuar, 444=Salir). Ejercicio 31: Ingresar por teclado un número N positivo (6-12), genere y presente por pantalla las 4 operaciones básicas desde el 1 hasta el 12. Al finalizar el programa deberá repetir con las siguientes opciones (SI=Repetir el programa, NO=Finalizar el programa).

38 Tarea 2 – 1/1 y 1/2 Semestre Ejercicio 26:
Para identificar las ventas que se realizan diariamente en un negocio de venta de automóviles, se usa la variable de entrada CODIGO DE VENTAS, la cual se debe validar con los siguientes valores: Código de Venta Significado 1 Identifica las ventas de autos nuevos. 2 Identifica las ventas de autos usados. 3 Identifica las ventas de repuestos. La comisión de un vendedor es la siguiente: 3% en la venta de autos nuevos, sin que éste sobrepase los $20000. 5% del precio en venta de autos usados, asegurándole al menos $12000. 6% del precio en venta de repuestos. Con estos antecedentes se pide: Elaborar un diagrama de flujo con su respectiva codificación en el que se ingrese por teclado el nombre del vendedor, el código de ventas y el valor de ventas; y produzca como salida: a. Tipo de venta y comisión: El tipo de venta es una cadena de caracteres cuyo valor va a depender del código de venta de la siguiente manera: Si el Código de Venta = 1 Tipo de Venta = «NUEVOS» Si el Código de Venta = 2 Tipo de Venta = «USADOS» Si el Código de Venta = 3 Tipo de Venta = «REPUESTOS» b. Promedio de venta y promedio de comisión. c. El valor de la venta más alta y el valor de la venta más baja. Al finalizar el programa deberá repetir para gestionar otra venta, con las siguientes opciones (C=Continuar, S=Salir).

39 Ejercicios en Clase – 1/1 y 1/2 Semestre
Ejercicio 1: Realizar un programa que ingrese la edad de una persona, si la edad es de 1 a 12 años será “Niño o Infante”, si la edad es de 13 a 18 años será “Joven o Adolescente”, caso contrario será “Adulto o Mayor de edad”.

40 Información en la Web * *

41 Fundamentos de Programación
¿Preguntas?


Descargar ppt "Fundamentos de Programación"

Presentaciones similares


Anuncios Google