FUNDAMENTOS DE PROGRAMACION
CAPITULO 2 METODOLOGIA DE PROGRAMCION Y DESARROLLO DE
SOFWARE
2.1 Diseñar una solución para resolver cada uno de los siguientes problemas y tratar de
refinar sus soluciones mediante algoritmos adecuados:
1. Realizar una llamada telefónica desde un teléfono público.
Inicio
Tomo el teléfono
Pongo el dinero o tarjeta
Marcar número
Esperar a que conteste
Fin
2. Cocinar una tortilla.
Inicio
Pelar las papas
Echar las papas en una olla con agua
Echar sal a gusto
Repetir
Esperar
Hasta que las papas estén cocidas
Vaciar el agua de la olla
Sacar las papas a una cacerola
Cortar las papas
Sacar el huevo de la nevera
Romper el huevo y botar las cáscaras
Batir el huevo en un plato hondo
Encender el fuego
Poner la sartén
Repetir
Esperar
Hasta que el aceite esté hirviendo
Meter las papas en la sartén
Esperar a que las papas estén doradas
Verter los huevos en la sartén
Echar un poco de sal
Repetir
Batir huevos y papas por ambos lados
Hasta que la tortilla esté dorada
Retirar la sartén
Colocar la tortilla en un plato.
Fin
3. Arreglar un pinchazo de una bicicleta.
Variables
Parche
Pegamento
Proceso
Poner pegamento al parche
Colocar el parche en el pinchazo
Ponerle aire
Fin
4. Freír un huevo.
Variables
Huevo
Aceite
Estufa
Cazuela
Condimentos
Cucharas
Proceso
Inicio
Prender la estufa
Poner el aceite a la cazuela
Batir el huevo
Poner los condimentos
Echarlo a la cazuela
Cocinarlo al gusto
Fin
2.2Escribir un algoritmo para:
1. Sumar dos números enteros.
Proceso suma
definir numero1 como entero;
definir numero2 como entero;
definir m como entero;
Escribir "ingrese un numero";
Leer numero1;
Escribir "ingrese segundo numero" ;
Leer numero2;
m<-numero1+numero2;
Escribir "resultado es";
Escribir m;
Fin Proceso
2. Restar dos números enteros.
Proceso resta
definir numero1 como entero;
definir numero2 como entero;
definir m como entero;
Escribir "ingrese un numero";
Leer numero1;
Escribir "ingrese segundo
numero" ;
Leer numero2;
m<-numero1-numero2;
Escribir "resultado es";
Escribir m;
FinProceso
3. Multiplicar dos números enteros.
Proceso multiplicacion
definir numero1 como entero;
definir numero2 como entero;
definir m como entero;
Escribir "ingrese un numero";
Leer numero1;
Escribir "ingrese segundo numero" ;
Leer numero2;
m<-numero1*numero2;
Escribir "resultado es";
Escribir m;
FinProceso
4. Dividir un número entero por otro.
Proceso division
definir numerador como entero;
definir denominador como entero;
definir resultado como real ;
Escribir "insertar numerador";
leer numerador;
Escribir "insertar denominador";
Leer denominador;
Si denominador<>0 Entonces
resultado=numerador/denominador;
escribir "resultado de la
division es ",resultado;
Sino
escribir "indeterminada";
Fin Si
FinProceso
2.3 Escribir un algoritmo para determinar el máximo común divisor de dos números
enteros (MCD) por el algoritmo de Euclides:
Dividir el mayor de los dos enteros positivos por el más pequeño.
A continuación dividir el divisor por el resto.
Continuar el proceso de dividir el último divisor por el último resto hasta que la
división sea exacta.
El último divisor es el mcd.
Diagrama de flujo Pseudocódigo
Algoritmo mcd
escribir"ingresar m"
leer m;
escribir"ingresar l"
leer l;
Mientras a!=b Hacer
si m>l
A<-m-l
SiNo
B<-l-m
FinSi
Fin Mientras
C=m
Escribir "el mcd es" C;
FinAlgoritmo
2.5 Diseñar un algoritmo que visualice y sume la serie de números 3, 6, 9, 12…, 99
Algoritmo serie
definir suma,num Como Entero
suma=0
num=3
escribir num
mientras num<99
num=num+3
Escribir num
FinMientras
FinAlgoritmo
2.6 Escribir un algoritmo que lea cuatro números y a continuación visualice el mayor de
los cuatro.
Pseudocódigo
Algoritmo numero_mayor
a<-0;
a1<-0;
a2<-0;
a3<-0;
escribir"escribir cuatro numeros"
leer a,a1,a2,a3;
Si a>a1 & a>a2 & a>a3 Entonces
Escribir "el mayor es" a;
SiNo
Si a1>a & a1>a2 & a1>a3 Entonces
Escribir "el mator es" a1;
SiNo
Si a2>a & a2>a1 & a2>a3 Entonces
Escribir "el valor es" a2;
SiNo
Si a3>a & a3>a2 & a3>a1 Entonces
Escribir "el valor mayor es" a3;
FinSi
Fin Si
Fin Si
Fin Si
FinAlgoritmo
Diagrama de flujo
2.7 Diseñar un algoritmo que lea tres números y descubra si uno de ellos es la suma de
los otros dos.
Algoritmo suma_dos_numeros
escribir"introducir tres numeros"
leer a,b,c
Si a+b=c Entonces
escribir"los numeros cumplen la condicion"
Si a+c=b Entonces
escribir"los numeros cumplen la condicion"
Si c+b=a Entonces
Escribir "los numeros cumplen la condicion"
Fin Si
Fin Si
SiNo
escribir "los numeros no cumplen la condicion"
Fin Si
FinAlgoritmo
2.8 Diseñar un algoritmo para calcular la velocidad (en m/s) de los corredores de la
carrera de 1.500 metros. La entrada consistirá en parejas de números (minutos,
segundos) que dan el tiempo del corredor; por cada corredor, el algoritmo debe
visualizar el tiempo en minutos y segundos, así como la velocidad media.
Ejemplo de entrada de datos: (3,53) (3,40) (3,46) (3,52) (4,0) (0,0); el último par de
datos se utilizará como fin de entrada de datos.
2.9 Diseñar un algoritmo para determinar los números primos iguales o menores que N
(leído del teclado). (Un número primo sólo puede ser divisible por él mismo y por la
unidad.)
Algoritmo primo
definir n,i,d como enteros
d<-0
escribir “ingresar número"
leer n
Para i<-1 Hasta n Hacer
Si n MOD i=0 Entonces
d<-d+1
Fin Si
Fin Para
Si d=2 Entonces
escribir "es primo"
Sino
escribir "no es primo"
Fin Si
FinAlgoritmo
2.10 Escribir un algoritmo que calcule la superficie de un triángulo en función de la
base y la altura (S = 1/2 Base × Altura).
Diagrama de flujo Pseudocódigo
Algoritmo triangulo
Escribir "ingrese la base del
triangulo"
leer b;
escribir"ingrese la altura del
triangulo"
leer h;
a=b*h/2;
Escribir"respuesta es " a
finalgoritmo
2.11. Calcular y visualizar la longitud de la circunferencia y el área de un círculo de
radio dado.
Algoritmo circulo
escribir “digite el radio"
leer r;
a<-PI*r^2
l<-2*PI*r
escribir " el area del circulo es " a
escribir " la longitud del circulo es
"l
FinAlgoritmo
2.12 Escribir un algoritmo que encuentre el salario semanal de un trabajador, dada la
tarifa horaria y el número de horas trabajadas diariamente.
Algoritmo salario_trabajdor
Leer tarifas;
leer horas;
salario<-tarifas*horas;
Imprimir salario
FinAlgoritmo
2.13 Escribir un algoritmo que indique si una palabra leída del teclado es un
palíndromo. Un palíndromo (capicúa) es una palabra que se lee igual en ambos sentidos
como “radar”
Algoritmo palindromas
Escribir "ingrese la palabra"
leer palabraoriginal
Para i<-longitud(palabraoriginal) Hasta 0 Con Paso-1 Hacer
palabrainvertida<-palabrainvertida+Subcadena(palabraoriginal,i,i)
Fin Para
Limpiar Pantalla
Si palabrainvertida = palabraoriginal Entonces
escribir"la palabra es palindroma "
SiNo
escribir " la palabra no es palindroma "
Fin Si
Escribir "palabra original ",palabraoriginal
escribir "palabra volteada ",palabrainvertida
FinAlgoritmo
2.14 Escribir un algoritmo que cuente el número de ocurrencias de cada letra en una
palabra leída como entrada. Por ejemplo, "Mortimer" contiene dos "m", una "o", dos
"r", una "i", una "t" y una "e".
Funcion veces <- buscarcaracteres (cadena,letras )
definir cont como entero
Para i<-1 Hasta longitud(cadena) Con Paso 1 Hacer
Si (Subcadena(cadena,i,i)=letras) Entonces
cont=cont+1
Fin Si
Fin Para
veces=cont
Fin Funcion
Funcion separarletras(palabra)
definir size, veces como entero
size<-longitud(palabra)
Para i<-1 Hasta size Con Paso 1 Hacer
veces= buscarcaracteres(palabra,Subcadena( palabra,i,i ))
escribir"la letra", subcadena( palabra,i,i ), "esta ", veces, " veces en la
palabra ",palabra
Fin Para
FinFuncion
Algoritmo ocurrencia
definir cadena Como Caracter
Escribir "ingresar palabra"
leer cadena
separarletras(cadena)
FinAlgoritmo
2.15 Muchos bancos y cajas de ahorro calculan los intereses de las cantidades
depositadas por los clientes diariamente según las premisas siguientes. Un capital de
1.000 euros, con una tasa de interés del 6 por 100, renta un interés en un día de 0,06
multiplicado por 1.000 y dividido por 365. Esta operación producirá 0,16 euros de
interés y el capital acumulado será 1.000,16. El interés para el segundo día se calculará
multiplicando 0,06 por 1.000 y dividiendo el resultado por 365. Diseñar un algoritmo
que reciba tres entradas: el capital a depositar, la tasa de interés y la duración del
depósito en semanas, y calcular el capital total acumulado al final del período de tiempo
especificado.