Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Profesores:
Jazna Meza Hidalgo
Grisell Osses Díaz
Luis Ángulo Mura
Manuel Crisosto Muñoz
Motivación
OBJETIVO GENERAL DE LA ASIGNATURA
Resolver problemas básicos a través de la construcción de programas
basados en algoritmos y un lenguaje de programación, generando acciones
hacia la búsqueda de propuestas pertinentes.
2
Pasos en la resolución de un problema
• Entender el problema
– Conceptualización
– Objetivo
– Contexto
• Buscar soluciones
• Elegir solución
• Diseñar solución
– Descomposición
– Especificar tareas
– Modelar solución
• Implementar solución
• Validar solución
3
Programa de Aplicación
Proceso Ecuacion_primer_grado
Programa Variables
que permite a,b,x de tipo entero
resolver la Escribir 'Ingrese valores de EC'
ecuación de Leer a,b
primer grado Si a = 0 Entonces
Escribir 'Error' #include <stdio.h>
Sino int main()
x<- -1*b/a; {
Escribir 'La solución es: ',x; int a,b,x;
FinSi printf(“Ingrese valores de EC”);
Escribir 'Fin programa'; scanf(“%d %d”,&a,&b);
ax+b=0 FinProceso if (a ==0) printf (“error”);
else
{
x = -b / a;
a printf(“La solución es %d:”,x);
? x = -b / a }
b printf(“Fin programa”);
return 0;
}
4
¿Qué es un problema?
• Es una situación concreta sobre la cual se quiere implementar
una solución (ejemplos)
• Solución: procedimiento que nos lleva a satisfacer ciertos
requerimientos
• Esquema básico para la resolución de un problema a través
de un programa con un enfoque sistémico
Entrada Salida
Proceso
•Datos Externos •Informes
•Datos auto generados •Datos para otro programa
•Lectura de dispositivo de •Datos grabados en
almacenamiento dispositivos externos de
almacenamiento
5
Datos y Variables
• Datos: objetos simbólicos que representan
objetos del mundo real.
– Ejemplos: 10 de Marzo de 2003, 3.14
• Variables: En programación corresponde a un
espacio de memoria reservado para almacenar
un dato, al cual se le asigna un nombre y un
tipo de dato.
– Ejemplos: velocidad del móvil, factor de
crecimiento
6
¿Qué es un algoritmo?
• Procedimiento detallado para resolver un
problema en pasos y en un tiempo finito.
• Se especifican en base a operaciones básicas
que controlan las variables y el flujo del
algoritmo
• El algoritmo lleva desde un estado inicial a un
estado final
• El algoritmo recibe Entradas y entrega Salidas
7
¿Cómo desarrollar un algoritmo?
• Imaginación
• No reinventar la rueda
• Dividir para conquistar
• Para ser efectivo se requiere practicar
constantemente
• El diseño de algoritmos es una rama de la
Ciencia de la Computación
8
¿Cómo se describe un algoritmo?
• Lenguaje natural
• Pseudo código
• Lenguaje de programación
• La precisión es importante
– Un algoritmo no puede ser descrito de forma
ambigua:
• Todos tienen que entender lo mismo (incluido el
computador!)
9
Llamada telefónica
• Se desea conceptualizar el
problema de efectuar una
llamada telefónica en un teléfono
público que recibe monedas de
$10, $50 y $100. El costo mínimo
de la llamada es de $100 por 5
minutos. El proceso se inicia
desde que se levanta el auricular
y finaliza cuando se cuelga.
10
Conceptos Básicos de Algoritmos
• La forma en que se ejecutan las operaciones básicas
en un computador, es similar a lo que ocurre en
nuestro cerebro.
•ASIGNACIÓN
a 5;
b a+z;
c (a*a+b*b)/(a*b);
Instrucciones
Proceso <Nombre_Proceso>
Variables
Lista de variables Tipo_Dato; Las instrucciones o acciones presentes en un programa o
Acción_1
algoritmo se pueden clasificar de la siguiente manera:
Acción_2
Acción_3
:
: • Instrucciones o acciones aritméticos / lógicos:
Acción_n
FinProceso •Suma (+), Resta(-), Multiplicación(*), División (/), Módulo (%),
Raíz cuadrada (RC)
(el módulo como la raíz cuadrada pueden ser
implementados con las operaciones básicas, pero por
comodidad los utilizaremos en forma explicita)
Si expresion_logica Entonces
acciones_por_verdadero;
Sino
acciones_por_falso;
FinSi
Acción_1 a
Acción_2 ? x = -b / a
Si expresion_logica Entonces b
acciones_por_verdadero;
Sino a≠0
acciones_por_falso; Proceso Ecuacion_primer_grado
FinSi Variables
: a,b Entero;
Acción_n x Flotante;
FinProceso Leer a,b;
Si a = 0 Entonces
Escribir 'La ecuacion no es de primer grado';
Sino
x<- -b/a; //probar la solución con PSeInt
Escribir x;
FinSi
Escribir 'Fin de Programa';
FinProceso
Instrucciones de transferencia de control
* No presente en PSeint
Tablas de verdad asociadas a los operadores
lógicos and, or, not
y, And, & O, Or, || No, ~
Y
V F
&
V V F
F F F
var1 2; var1 2;
var2 0; var2 0;
var3 4; var3 4;
var4 (var1*var1)/var3; var4 (var3%var1)
Si (var4>=1) y (var1 !=0) Entonces Si ((var4!=0) o (var2 >0)) y (var3 =4) Entonces
acciones_por_verdadero; acciones_por_verdadero;
Sino Sino
acciones_por_falso; acciones_por_falso;
FinSi FinSi
: :
Acción_n Acción_n
FinProceso FinProceso
Es importante notar que existen prioridades entre los operadores. Por lo tanto,
deben utilizarse paréntesis en los casos que correspondan
Ejercicios: Construir, utilizando pseudocódigo, un algoritmo para cada uno de
los siguientes enunciados
Cree un algoritmo que divida dos números y muestre el resultado
Bloque de Condición
Falso lógica
Instrucción2
Verdadero
Bloque de
Bloque de Instrucción3
Instrucción3
VC ← VI , VF, Salto
Bloque de
Instrucción3
Bloque de Instrución1;
Para Variable_Numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer
Bloque de Instrución2;
FinPara
Bloque de Instrución3;
Construir un algoritmo que permita calcular el promedio de n
números ingresados por teclado
Proceso Promedio
Variables
n
X1 n,i,x,suma, prom Entero;
X2 Repetir
X3 Programa Promedio Escribir 'Cuantos numeros sumara?';
Leer n;
:
Hasta Que (n > 0)
Xn n>0 suma<-0;
Para i<-1 Hasta n Con Paso 1 Hacer
Promedio= (x1+ x2+ x3+…. +xn)/n Leer x;
suma<-suma+x;
n FinPara
prom<-suma/n
(∑ xi = x1+ x2+ x3+…. +xn ) / n Escribir 'Resultado: ',prom;
i=1 FinProceso
¿Preguntas?
Ejercicios
• Crear un algoritmo que encuentre e imprima el número mayor de N números
enteros positivos ingresados por teclado.
• Crear un algoritmo que calcule e imprima el resultado de la siguiente sumatoria
n
∑i
i=1
• Cree un algoritmo que permita evaluar la siguiente función, para n valores de x:
• (3x2-5x)/ (x-10) si x > 0
• f(x)= (5x)/x si 0 < x <=10
• x2 si x <=0
• Crear un algoritmo que permita evaluar la función f(x)=3*x 3+4*x2-5 para todos los
valores enteros de x comprendidos en el intervalo [a,b]
• Crear un algoritmo que permita generar los primeros n números de la serie de
Fibonacci
• Crear un algoritmo que permita calcular la siguiente sumatoria:
S= n + 2*n + 3*n +4*n +…….+ n*n