Professional Documents
Culture Documents
Facultad de Ingeniería
Programación básica
DEL CURSO
Las computadoras se clasifican en tres por su señal:
Analógicas
Digitales
Hibridas
Costo elevado.
∫d(x)
Aplicaciones generales.
Digitales
Costo accesible.
Operaciones (+ y -).
Minicomputadoras
<costo, <usuarios, procesamiento secuencial, y un
Microcomputadoras microprocesador.
Microcomputadora
MP
Macrocomputadora
Sistemas Operativos Windows (Net, 95, 98, 2000, Millenium, Vista, XP, 7),
(Operating System). Linux, Mac, Fedora, Ubuntu, PLC (escalera e instrucción)
Lenguaje de programación. Java, Delphi, Cobol, C++, Ada, Basic, Pascal, Fortran, PLC
(compiladores e intérpretes)
Dedos de las
manos.
5000 A.C. Romanos Piedras (calculus)
2500 A.C. Chinos Ábaco.
1519 Leonardo da Vinci Sumadora Utilización de engranes.
mecánica
1300 -1500 Incas Cuentas
1614 John Napier, inventor de Estructuras de
los logaritmos naturales. Napier.
1623 Wilhelm Shickard Primer mecanismo
de calculadora.
1642 Blaise Pascal La pascalina. Calculadora mecánica de
ruedas dentadas que
sumaba y restaba.
1663 William Ougthred Los círculos de Basado en las estructuras
proporción y de Napier, podía realizar
posteriormente productos, cocientes,
conocida como logaritmos, exponentes,
regla del cálculo. funciones trigonométricas
y funciones matemáticas.
1666 Samuel Morlan Primera máquina
multiplicadora
(series 10,100)
1671 Gottfried Wilhelm von Calculadora Podía realizar sumas,
Leibnitz universal. restas, multiplicaciones y
Stepped Reckoner divisiones, incluye como
mecanismo la regla
escalonada de Leibnitz,
además se le atribuye la
creación de una máquina
que utilizaba el sistema
binario.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
enfriamiento propio y se
programaba “a mano”.
Pesaba aprox.30
toneladas.
1949 John Von Neuman EDVAC 4000 bulbos, memoria
Electronic basada en tubos de
Aporta el concepto de Discrete mercurio con retardos de
PROGRAMA ALMACENADO Variable señal.
Automatic
Computer.
Cuestionario:
Clusters (SETI)
Componente Tubos al vacío Transistor (200 Circuitos Integrados Microprocesador Multiprocesador, Microprocesador
básico (bu transistores (C.I) (Chips). (microcomputadora procesamiento con arquitectura
lbos). ocupaban el s). paralelo (varias paralelo /
espacio de un tareas). vectorial.
bulbo).
Memoria Memoria de Memoria de Memoria de Memoria de chips Memoria RAM de Memoria RAM de
tambores núcleos circuitos integrados de silicio. 64 a 128 Kb. 256 a 512 Kb.
magnéticos. magnéticos. (64 kilobytes).
Lenguaje Lenguaje COBOL/FORTRAN Lenguaje de GUI: Graphic User Lenguaje natural Se ocupa el
máquina BASIC/ADA/PASCA sistemas operativos Interface PROLOG. ACTIVE VOICE (le
(binario) a L. (Instrucciones). Procesador de dictas a la
mano. textos, base de computadora en
datos (Office). lenguaje natural).
Medios de Utilizan cintas Cintas magnéticas. Discos magnéticos. Discos magnéticos Discos magneto- Discos duros
almacenamient y tarjetas (8”, 5 ¼ “, 3 ½ “) CD ópticos, ópticos externos,
o perforadas. (compact disk). CD, DVD. Memoria USB.
Características Grandes, Mayor velocidad y Disminución de Robótica, redes Fibra óptica (se
costosas y menor generación tamaño y costo. Se minimizan los neuronales, utiliza para
generaban de calor. Tele proceso circuitos, aumenta sistemas transmitir datos).
mucho calor, (antecedente de la capacidad de expertos, Biomédica.
lo que implica Internet). almacenamiento. reconocimiento Redes de área
un sistema de Multitarea, de patrones, mundial (WAN).
enfriamiento multiprogramación Reducen el tiempo redes de Miles de
propio. y tiempo de respuesta. comunicación, operaciones de
compartido. algoritmos punto flotante
genéticos, por segundo.
realidad virtual.
Reto japonés(A.I.)
Características Tenían Necesitaban GRUPO DE Elaboración Holografía
aplicaciones todavía sistemas CONSTRUCTORES Gran expansión del inteligente del (imagen generada
específicas y de enfriamiento DE uso de las saber y número en un espacio
solo grandes pero podían estar COMPUTADORAS Computadoras. tratamiento de tridimensional,
empresas más tiempo BUNCH : datos. generalmente
Memorias
tenían acceso operando. Burroughs/ Univac / con el uso de rayo
a ellas. NCR/ CDC/ electrónicas más Máquinas láser).
Honeywell. rápidas. activadas por la Aplicaciones de
voz que pueden redes neuronales
Sistemas de
responder a o artificiales.
tratamiento de
palabras habladas
bases de datos. en diversas
lenguas y
dialectos.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Ejemplos UNIVAC 1 IBM 7090 /UNIVAC IBM 360-370 / CDC Intel 8086 (Primero Código de barras, Monitores
IBM 701 M460 / RCA 501 /PDP-11/UNIVAC fue el 4040) reconocimiento Touchscreen.
MARK 1 110- 1110 / TLP 8 Motorola 68028 de patrones.
COLOSSUS (Primero el 6800).
Cuestionario:
CONCEPTOS BÁSICOS
bit: Binary digit/Dígito binario: mínima unidad de información que puede representar una
computadora, es un “0” ó un “1”.
Unidades de bit,
(2)8 = 256
20 = 1…
procesador(conjunto de bytes).
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
NOMBRE
Diskette y discos duros – presentación o apunte con imágenes: características cómo funciona, (2
tipos) equipo 4 miércoles.
Reloj MP
E/S
MP BUS
RAM
ROM
Interna
Memoria
E/S
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Selecciona S BC
INTERNA RAM
E
Selección
MEMORIA
Compuerta AND
Registro de datos
EXTERNA
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
METODOLOGÍA DE LA PROGRAMACIÓN
Precisión
Determinismo
Finitud
Ejemplo:
Ingredientes:
- 8 huevos
- 100 g de gambas peladas
- 100 g de jamón serrano
- 50 g de aceitunas deshuesadas
- 1 pimiento morrón
- sal
- pimienta
- mayonesa
Preparación: Cocer los huevos y dejar enfriar, mezclar las yemas con las gambas hervidas, las
aceitunas y el jamón picado, se sazona con sal y pimienta, se cubren con la mayonesa y se adornan
con tiras de pimiento y aceitunas.
Pseudocódigo: Técnica para diseño de programas o algoritmos que permite definir las estructuras
de datos, las operaciones que se aplican a los datos y la lógica que tendrá el programa para
solucionar un determinado problema.
Salida o envio de
datos
(Escritura)
Lenguaje de programación: Está constituido por un conjunto de reglas, sintácticas (que este bien
escrito) y semánticas (que tenga un significado).
Ejemplos:
Java,
Ada,
BASIC,
FORTRAN,
COBOL,
Visual C, Visual Basic, etc.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
C , C++, C#
ALGOL
PL/1
APL
Legibilidad
Portabilidad
Modificabilidad
Eficiencia
En 1966, Bohn y Jacopinni publicaron un artículo del teorema de la estructura que dice lo
siguiente:
Teorema de la Estructura
“Todo programa propio, realice la tarea que realice, tiene un programa propio equivalente
que sólo utiliza las estructuras de control de la programación, que son: secuencia,
selección e iteración (repetición)”
es accesible, y,
Esta acción permite representar en un programa la estructura de datos necesaria para abstraer en
la computadora la situación real del problema. Su formato es:
Nombre_variable1:tipo_de_datos
Nombre_variableN:tipo_de_datos
Máximo 8 caracteres.
Sin espacios.
Alfanuméricos.
Esta operación nos permite introducir a la computadora los datos con los cuales va a trabajar el
procesador. El dispositivo estándar de entrada es el teclado.
Su formato es:
Mediante la escritura de datos damos la salida a los datos de la computadora hacia un medio
periférico. La salida estándar es el monitor.
Su formato es:
Campo: Objeto que se desea visualizar (un valor literal, una constante, una variable, una cadena
de caracteres o mensaje). Las cadenas o mensajes deben de ir encerrados entre comillas dobles
(“”).
^ o * Potencia
/ División
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
+ Suma
- Resta
* Multiplicación
mod Módulo
También llamadas booleanas en honor al matemático George Boole, están constituidas por
números, constantes, y operadores lógicos y relacionales; el valor que pueden tomar estas
expresiones es el de verdadero o falso.
Operadores relacionales
<>o≠
<
>
<= / ≤
>= / ≥
Operadores lógicos
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Y Conjunción
O Disyunción
No Negación
Se refiere al orden en las que son realizadas las operaciones ya sean aritméticas, lógicas o
relacionales.
ESTRUCTURAS DE DATOS
Son las diversas maneras de identificar un objeto en la computadora, es decir los tipos de datos
que manejan las máquinas.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Dato: Expresión general que representa algún hecho, concepto o entidad real a su vez puede
ser constante y variable.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
ESTRUCTURAS DE CONTROL
Son las formas lógicas como pueden controlarse las instrucciones dentro de un programa, dentro
de las cuales se controla el flujo de instrucciones; las estructuras de control son: secuencia,
selección y repetición o iteración.
Secuencia: es una estructura con una entrada y una salida, en la cual aparece una serie de
acciones cuya ejecución es lineal y en el orden en el que aparecen.
Selección o alternativa: es una estructura con una entrada y una salida en la cual se realiza una
acción entre varias según una condición, o se realiza una acción, según el cumplimiento o no de
una determinada condición.
Simple
Pseudocódigo
BI
Doble o compuesta
Pseudocódigo
BI2 BI1
Múltiple
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Pseudocódigo
Valor 1: BI1
BI1 BI0
Valor 2: BI2
BI2
Omisión: BI0
fincaso
Iteración o repetición: es una estructura con una entrada y una salida en la cual se repite una
acción, un número determinado o indeterminado de veces, dependiendo del cumplimiento de una
condición. Estas pueden ser:
Mientras
Pseudocódigo
BI
Repite
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Cond
v
Para vi
Pseudocódigo
BI
Inc
Nota: cualquier programa que se puede representar en “para” tiene su equivalente en “mientras”
y “repite”, lo contrario no es verdad.
o Escriba un programa completo que calcule el área y el volumen de una esfera usando la
fórmula: vol = (4/3)∏r y A=4∏r^2
Para volumen:
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Pseudocódigo
Π= 3.1416
V: real
A: real
Comienzo
Leer radio
V (4/3) 31416*r
A 4(3.1416)*r^2
Escribir “Volumen=”, V
Escribir “Área=”, A
Terminar
DF
Teclea radio
V(4/3) 3.1416*r
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
PRUEBA DE ESCRITORIO
Tabla de variables
radio A V
5 314.16 20.94
Pantalla
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Teclea radio 5
Volumen= 20.94
Área = 314.16
PSEUDOCODIGO
Programa cálculo
N: entero
S: entero
Comienza/inicio
Lee N
S N(3600)(24)
Termina
Inicio
DF
Inicio
Teclea número
de días
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
PRUEBA DE ESCRITORIO
Tabla de variables
S N
432000 5
Pantalla
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Velo: distancia/tiempo
Distancia: (metros/1000)
Pseudocódigo
Programa Olimpic
Dist,minut,seg,cen,tiempo,metro,velo: real
Comienza
Lee metro
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Lee minut
Lee seg
Lee cen
Dist (metro/1000)
velo (Dist/tiempo)
Termina
DF
Inicio
Teclea metros
Teclea minutos
Teclea segundos
Teclea
centésimas
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Tabla de variables
Pantalla
Teclea metro 7
Teclea minutos 20
Teclea segundos 3
Teclea centésimas 4
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
o Construya un programa que al recibir como dato un número entero determine e imprima
si es par, impar o nulo.
Algoritmo
Pseudocódigo
Programa parimpar
Num:entero
Comienza
Leer num
Si (num=0) entonces
Otro
Otro
Fin si
Fin si
Inicio
Termina
Teclea el
número
numradio
Num mod
Número impar Número par
2=0
Construya un diagrama de flujoFiny pseudocódigo que calcule el precio de ida y vuelta en ferrocarril,
conociendo tanto la distancia entre las 2 ciudades como el tiempo de estancia en la ciudad-
destino. Si el número de días de estancia es superior a 10 y la distancia total (ida y vuelta) a
recorrer es superior a 500 km, el precio de billete se reduce 20%. El precio por kilómetro es de 19
centavos.
Al
Pseudocódigo
Programa viaje
Pb: real
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Comienza
Leer est
Leer dist
dt 2* dist
Pb (dist*19)*(0.80)
Otro
pb (dist*19)
Fin si
Termina
Inicio
Teclea días
de estancia
est
Teclea
distancia
dist
Dt 2 * dist
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
PROBLEMA
#include <stdio.h>
#include <conio.h>
#include <math.h>
float L1=0,L2=0,L3=0,LM=0,Lm=0,L2m=0,Lp=0,S,SA,A;
int main ()
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
scanf("%f",&L1);
scanf("%f",&L2);
scanf("%f",&L3);
LM=L1;
Lm=L2;
L2m=L3;
else
LM=L1;
Lm=L2;
L2m=L3;
else
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
LM=L2;
Lm=L1;
L2m=L3;
else
LM=L3;
Lm=L2;
L2m=L1;
Lp=Lm+L2m;
if (LM>Lp || LM==Lp)
else
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
S=(LM+Lm+L2m)/2.0;
SA=(S*(S-LM)*(S-Lm)*(S-L2m));
A=pow(SA,(1/2.0));
else
else
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
#include <stdio.h>
#include <conio.h>
int num,numdivide,digito,noespar;
int main()
printf("Hola, este programa determina si todos los digitos del numero que teclees son pares\n");
scanf("%i",&num);
noespar = 0;
numdivide=num;
if ( (digito % 2) != 0)
noespar=1;
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
if (num!=0)
if (noespar==0)
else
else
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Ejemplo.
1. Desarrolle un programa que utilice la estructura de control mientras y que escriba los
números del 1 al 10.
programa contador
cuenta: entero
comienza
cuenta <- 1
mientras (cuenta <=10)
escribe cuenta
cuenta <- cuenta +1
finmientras
termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Programa bandera
num : entero
resp : entero
comienza
resp <- 0
num <- 1
escribe “quieres escribir el numero?”
leer resp
mientras (resp = 1)
escribir num
num <- num + 1
escribe “quieres escribir el numero?”
leer resp
finmientras
termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
INVESTIGACIÓN
Variables: objetos que pueden cambiar su valor durante la ejecución de un programa.
Tipos de variables
Variables locales: objetos definidos tanto en el programa principal como en las funciones y su
alcance está limitado solamente al programa principal o a la función en la cual están definidas
(deben ser inicializadas cada vez que se ejecuta la función).
Variables globales: objetos definidos antes del inicio del programa principal y su alcance es muy
amplio, ya que tiene influencia tanto en el programa principal como en todas las funciones.
Variables estáticas: son similares a las locales, pero conservan su valor durante la ejecución del
programa. Es decir, comienzan a existir cuando se llama a la función y conservan su valor aun
cuando el control regresa al programa principal.
Parámetros por valor: permiten pasar datos entre el programa principal y las funciones, e incluso
entre las mismas funciones. En el parámetro se escribe una copia de la variable original. Si el
parámetro sufre una alteración en la función que lo recibe, la variable original no se ve afectada.
Parámetros por referencia: permiten la comunicación entre el programa principal y las funciones,
o entre las mismas funciones. Sin embargo en este caso, en lugar de escribir la copia de la variable
en el parámetro se escribe la dirección de la misma. Si el parámetro sufre una alteración en la
función que lo recibe, la variable original también se ve afectada. En C, las llamadas por referencia
se realizan mediante apuntadores (variable que contiene la dirección de otra variable y se
representa por medio de operadores de dirección (&) e indirección (*).
Referencia bibliográfica
Serie de ejercicios
Para cada uno de los enunciados siguientes desarrolle el pseudocódigo, diagrama de flujo, prueba
de escritorio y codificación en lenguaje C.
1.- ESCRIBIR UN PROGRAMA QUE LEA UN NOMBRE DE UNA MARCA DE AUTOMÓVILES SEGUIDA DEL NOMBRE DE SU
MODELO E INFORME EL MODELO SEGUIDO DEL NOMBRE.
Programa model
modelo, marca: caracter
Comienza
Escribe” Este programa invierte el orden en que usted teclea la marca y modelo de su auto”
Escribe“Teclee la marca y el modelo de su auto”
Lee marca,modelo
Escribe” El modelo de su auto es” ,modelo,” y la marca es”,marca
Termina
Codificación
#include <stdio.h>
#include <conio.h>
char modelo [15],marca [15];
int main ()
{
printf("Este programa invierte el orden en que usted teclea la marca y modelo de su auto\n");
printf("Teclee la marca y el modelo de su auto \n");
scanf("%s %s",&marca,&modelo);
printf("El modelo de su auto es %s y la marca es %s",modelo,marca);
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Prueba de escritorio
Pseudocódigo
Programa hipote
hip, cad, cop: real
Comienza
Escribe” Este programa calcula la hipotenusa de un triangulo rectángulo”
Escribe” Teclea los catetos (valores positivos)”
Lee cad,cop
hip ((cad^2)+(cop^2))^(1/2)
Escribe” La hipotenusa de tu triangulo rectángulo vale”,hip
Escribe” Espero le haya servido el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
float hip,cad,cop;
int main ()
{
printf("Este programa calcula la hipotenusa de un triangulo rectangulo\n");
printf("Teclea los catetos (valores positivos)\n");
scanf("%f %f",&cad,&cop);
hip=sqrt(pow(cad,2)+pow(cop,2));
printf("La hipotenusa de tu triangulo rectangulo vale %f",hip);
getch();
printf("Espero le haya servido el programa\n");
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
3.- DISEÑAR UN PROGRAMA QUE CALCULE EL ÁREA DE UN TRIÁNGULO EN FUNCIÓN DE LAS LONGITUDES DE SUS
LADOS: AREA = √P (P-A)(P-B)(P-C), DONDE P=(A+B+C)/2 .(P=SEMIPERÍMETRO)
Pseudocódigo
Programa heron
a,b,c,P,A: real
Comienza
Escribe” Este programa calcula el area de un triangulo empleando la formula de Heron”
Escribe” Teclea el lado 1”
Lee a
Escribe” Teclea el lado 2”
Lee b
Escribe” Teclea el lado 3”
Lee c
P (a+b+c)/2
P (P)*(P-a)*(P-b)*(P-c)
A (P^(1/2))
Escribe A,”es el area de tu triangulo”
Escribe” Espero le haya servido el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
float a,b,c,P,A;
int main()
{
printf("Este programa calcula el area de un triangulo empleando la formula de Heron\n");
printf("Teclea el lado 1\n");
scanf("%f",&a);
printf("Teclea el lado 2\n");
scanf("%f",&b);
printf("Teclea el lado 3\n");
scanf("%f",&c);
P=(a+b+c)/2.0;
P=(P*(P-a)*(P-b)*(P-c));
A=pow(P,(1/2.0));
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
a b c P A
5 6 6 8.5 13.63589
185.9375
Este programa calcula el area de un triangulo empleando la formula de Heron
Teclea el lado 1 5
Teclea el lado 2 6
Teclea el lado 3 6
13.63589 es el area de tu triangulo
Espero le haya servido el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Pseudocódigo
Programa polar
r, angu, x, y: real
resp: entero
Comienza
Escribe” Este programa transforma coordenadas polares a coordenadas cartesianas”
Repite
Escribe” Teclea 1. si tu ángulo esta en grados y 2. si esta en radianes”
Lee resp
Hasta (resp=1 o resp=2)
Escribe” Teclea el angulo”
Lee angu
Escribe” Teclea el modulo”
Lee r
Si (resp=1) entonces
angu (pi*angu)/ 180
Fin si
x r*(cos angu)
y r*(sen angu)
Escribe” Tus coordenadas son x=”,x,”y=”,y,”i”
Escribe” Gracias por utilizar el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
float r,angu,x,y;
int resp;
int main()
{
printf("Este programa transforma coordenadas polares a coordenadas cartesianas\n");
do {
printf("Teclea 1. si tu angulo esta en grados y 2. si esta en radianes\n");
scanf("%i",&resp);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
r angu x y resp
1.414213562 45 0.99999 0.99999 1
0.785398163
Teclea el angulo 45
Teclea el modulo 1.414213562
x= 0.99999
y= 0.99999 i
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Pseudocódigo
Programa nmulti6
n1, n2, resp: entero
Comienza
Escribe” Este programa determina si el numero dado es múltiplo de 6”
Escribe” Hay numero? (1-si,2-no)”
Lee resp
Mientras (resp=1)
Escribe” Teclea el numero”
Lee n1
Si (n1 mod 6=0) entonces
Escribe” El numero”,n1,”es múltiplo de 6”
Otro
Escribe” El numero”,n1.”no es múltiplo de 6”
Fin si
Escribe” Hay numero? (1-si,2-no)”
Lee resp
Fin mientras
Escribe” Gracias por utilizar el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
int n1,resp;
int main()
{
printf("Este programa determina si el numero dado es multiplo de 6\n");
printf("Hay numero? (1-si,2-no)\n");
scanf("%i",&resp);
while (resp==1)
{
printf("Teclea el numero\n");
scanf("%i",&n1);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
if (n1%6==0)
{
printf("El numero %i es multiplo de 6\n",n1);
}
else
{
printf("El numero %i no es multiplo de 6\n",n1);
}
printf("Hay numero? (1-si,2-no)\n");
scanf("%i",&resp);
}
printf("Gracias por utilizar el programa\n");
getch();
}
Prueba de escritorio
n1 resp
12 1
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
6.- ESCRIBIR UN PROGRAMA COMPLETO QUE CALCULE TODAS LAS RAÍCES DE LA ECUACIÓN CUADRÁTICA:
Pseudocódigo
Programa raicecua
x1, x2, a, b, c, discri: real
Comienza
Escribe” Este programa calcula el valor de las raíces de tu ecuación ax^2+bx+c=0”
Escribe” Teclea a”
Lee a
Escribe” Teclea b”
Lee b
Escribe” Teclea c”
Lee c
discri (b^2)-4*a*c
Si (discri>=0) entonces
x1 (-b+((b^2)-4*a*c))^(1/2)/(2*a)
x2 (-b-((b^2)-4*a*c))^(1/2)/(2*a)
Escribe” Las raíces son”,x1,”y”,x2
Otro
x1 -b/(2*a)
x2 (-discri)^(1/2)/(2*a)
Escribe” Tus raíces son complejas”
Escribe” La raíz x1 es”,x1,”+”,x2,”i”
Escribe” La raíz x2 es”,x1,”-”,x2,”i”
Fin si
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
float x1,x2,a,b,c,discri;
int main ()
{
printf("Este programa calcula el valor de las raices de tu ecuacion ax^2+bx+c=0\n");
printf("\nTeclea a \n");
scanf ( "%f",&a);
printf("Teclea b \n");
scanf ( "%f",&b);
printf("Teclea c \n");
scanf ( "%f",&c);
discri=(pow(b,2)-4*a*c);
if (discri>=0)
{
x1=(-(b)+sqrt(pow(b,2)-4*a*c))/2*a;
x2=(-(b)-sqrt(pow(b,2)-4*a*c))/2*a;
printf("\nLas raices son %5.3f y %5.3f\n",x1,x2);
}
else
{
x1=-b/(2*a);
x2=sqrt(-discri)/(2*a);
printf("Tus raices son complejas\n");
printf("\nLa raiz x1 es %5.3f + %5.3fi\n",x1,x2);
printf("\nLa raiz x2 es %5.3f - %5.3fi\n",x1,x2);
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
a b c discri X1 X2
1 4 -4 32 0.828427124 -4.828427125
7.- SE TRATA DE ESCRIBIR UN PROGRAMA QUE PERMITA EMITIR LA FACTURA CORRESPONDIENTE A UNA COMPRA DE
UN ARTÍCULO DETERMINADO DEL QUE SE ADQUIEREN UNA O VARIAS UNIDADES. EL IVA A APLICAR ES DEL 16% Y SI EL
PRECIO BRUTO (PRECIO DE VENTA MÁS IVA) ES MAYOR DE 50,000 PESETAS, SE DEBE REALIZAR UN DESCUENTO DEL
5%.
Pseudocódigo
Programa descue
n: entero
Comienza
Escribe” Este programa emite la factura de su compra, si el total rebasa las 500000 pesetas
se hara acreedor a un descuento”
Lee costo
Lee n
precio n*costo
ptotal (precio*0.16)+precio
Si (ptotal>5000) entonces
pdes ptotal-(ptotal*0.05)
Otro
Fin si
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include <stdio.h>
#include <conio.h>
int n;
float costo,precio,ptotal,pdes;
int main ()
{
printf("Este programa emite la factura de su compra, si el total rebasa las 50000 pesetas se hara
acreedor a un descuento\n");
printf("Teclee el costo del producto\n");
scanf("%f",&costo);
printf("Cuantas unidades desea adquirir?\n");
scanf("%i",&n);
precio=n*costo;
ptotal=(precio*0.16)+precio;
if (ptotal>50000)
{
pdes=ptotal-(ptotal*0.05);
printf("El total de su compra con descuento fue %f pesetas",pdes);
}
else
{
printf("El total de su compra fue %f pesetas",ptotal);
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
Este programa emite la factura de su compra, si el total rebasa las 50000 pesetas se hara
acreedor a un descuento
Teclee el costo del producto 500
Cuantas unidades desea adquirir? 12
El total de su compra fue 6960 pesetas
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
8.- DISEÑE UN PROGRAMA QUE PERMITA IMPRIMIR LOS ENTEROS PARES DEL 2 AL 48.
Pseudocódigo
Programa pare248
n: entero
Comienza
n 2
Escribe” Este programa imprime los números pares iniciando en 2 hasta 48 (teclea enter
para iniciar”
Repite
Escribe n
n n+2
Hasta (n>=48)
Escribe” Gracias por utilizar el programa”
Codificación
#include <stdio.h>
#include <conio.h>
int n;
int main ()
{
n=2;
printf("Este programa imprime los numeros pares iniciando en 2 hasta 48 (teclea enter para
iniciar)\n");
getch();
do
{
printf("%i\n",n);
n=n+2;
}while(n<=48);
printf("Gracias por utilizar el programa\n");
getch ();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
n Este programa imprime los numeros pares iniciando en 2 hasta 48 (teclea enter para iniciar)
2 2
4
4
6
6 8
8 10
10 12
12 14
16
14 18
16 20
18 22
20 24
26
22
28
24 30
26 32
28 34
30 36
38
32 40
34 42
36 44
38 46
48
40
Gracias por utilizar el programa
42
44
46
48
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
9.- ELABORAR UN PROGRAMA QUE, DADOS N NÚMEROS, IMPRIMA CUÁNTOS 0(CEROS) SE TECLEARON.
Pseudocódigo
Programa ceros
x,num,n,cr0: entero
Comienza
Escribe” Este programa te muestra cuantos ceros tecleas”
Escribe” Cuantos números?”
Lee n
x 1
cr0 0
Mientras (x<=n)
Escribe” Teclea el numero”
Lee num
x x+1
Si (num=0) entonces
cr0 cr0+1
Fin si
Fin mientras
Escribe” El total de ceros es”, cr0
Escribe” Espero haya sido útil el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
int x,num,n,cr0;
int main()
{
printf("Este programa te muestra cuantos ceros tecleas\n");
printf("Cuantos numeros?\n");
scanf("%i",&n);
x=1;
cr0=0;
while(x<=n)
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
{
printf("Teclea el numero\n");
scanf("%i",&num);
x=x+1;
if (num==0)
{
cr0=cr0+1;
}
}
printf("El total de ceros es %i",cr0);
printf("\nEspero haya sido util el programa\n");
getch();
}
Prueba de escritorio
x num cr0 n
1 3 0 5
2 0 1
3 4 2
4 0
5 2
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
10.- LA POBLACIÓN DE MÉXICO EN 1992 ERA DE 55 MILLONES Y TIENE UNA TASA DE CRECIMIENTO DE 7%. SI
MÉXICO CONSERVA SU ACTUAL TASA DE CRECIMIENTO, ¿CUÁL SERÍA EL PRIMER AÑO EN QUE LA POBLACIÓN SEA
MAYOR A 100 MILLONES?
Pseudocódigo
Programa poblamex
crece, pobla, tasa: real
anne: entero
Comienza
Escribe” Este programa calcula el año en que la población será mayor a 100 millones”
tasa 0.07
pobla 55000000
crece 0
anne 1992
Repite
crece tasa*pobla
pobla crece + pobla
anne anne+1
Hasta (pobla>100000000)
Escribe” El año en que la población será mayor a 100 millones es”, anne
Termina
Codificación
#include<stdio.h>
#include<conio.h>
float crece,pobla,tasa;
int anne;
int main()
{
printf("Este programa calcula el año en que la poblacion sera mayor a 100 millones\n");
getch();
tasa=0.07;
pobla=55000000;
crece=0;
anne=1992;
do
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
crece=tasa*pobla;
pobla=crece+pobla;
anne=anne+1;
}while (pobla <=100000000);
printf("El año en que la poblacion sera mayor a 100 millones es %i",anne);
getch();
}
Prueba de escritorio
Este programa calcula el año en que la poblacion sera mayor a 100 millones
El año en que la poblacion sera mayor a 100 millones es 2001
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
11.- EL MATEMÁTICO ITALIANO LEONARDO FIBONACCI PROPUSO EL SIGUIENTE PROBLEMA: SUPONIENDO QUE UN
PAR DE CONEJOS TIENE UN PAR DE CRÍAS CADA MES Y CADA NUEVA PAREJA SE HACE FÉRTIL A LA EDAD DE UN MES. SI
SE DISPONE DE UNA PAREJA FÉRTIL Y NINGUNO DE LOS CONEJOS MUERE. ¿CUÁNTAS PAREJAS HABRÁ DESPUÉS DE UN
AÑO? MEJORAR EL PROBLEMA CALCULANDO EL NÚMERO DE MESES NECESARIO PARA PRODUCIR UN NÚMERO DADO
DE PAREJAS DE CONEJOS.
Pseudocódigo
Programa conejos
cone, pare, m, cdesea: entero
mreque: real
Comienza
cone 2
m 0
Escribe” Este programa calcula el numero de conejos que se tendrán en 12 meses”
Repite
cone cone*2
m m+1
Escribe” En el mes”,m,”se tienen”,cone,”conejos”
Hasta (m>12)
pare cone/2
Escribe” El total de parejas de conejos que se tendrán en 12 meses son”, pare
Escribe” Teclea el número de conejos que desea tener”
Lee cdesea
mreque ((log (cdesea))/(log(2)))-1
Si ((mreque – redondeo (mereque)<>0) entonces
Si ((mreque – redondeo (mereque))<=0.5 y (mreque – redondeo (mereque))>0) entonces
mreque mreque+1
Fin si
mreque redondeo (mreque)
cone 2^(mreque+1)
Escribe” Los meses requeridos para tener”,cdesea, “conejos son”, mreque,”aunque
tendrías” ,cone, “conejos”
Otro
Escribe” Los meses requeridos para tener”, cdesea,”conejos son”, mreque
Fin si
Escribe” Espero le haya sido útil el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
int cone,pare,m,cdesea,;
float mreque;
int main()
{
cone=2;
m=0;
printf("Este programa calcula el numero de conejos que se tendran en 12 meses\n");
do
{
cone=cone*2;
m=m+1;
printf("En el mes %i se tienen %i conejos\n",m,cone);
}while (m<12);
pare=cone/2;
printf("El total de parejas de conejos que se tendran en 12 meses son %i", pare);
printf("\nTeclea el numero de conejos que deseas tener\n");
scanf("%i",&cdesea);
mreque=((log (cdesea)/log(2))-1);
if ((mreque -round (mreque))!=0)
{
if (mreque-round(mreque)<=0.5 && mreque-round(mreque)>0)
{
mreque = mreque +1;
}
mreque=round(mreque);
cone=pow(2,(mreque+1));
printf("Los meses requeridos para tener %i conejos son %3.0f aunque tendrias %i conejos \n",
cdesea,mreque,cone);
}
else
{
printf("Los meses requeridos para tener %i conejos son %3.0f \n",cdesea,mreque);
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
12.- ESCRIBA UN PROGRAMA QUE ACEPTE UN AÑO EN CIFRAS ARÁBIGAS Y VISUALICE EL AÑO ESCRITO EN NÚMEROS
ROMANOS DENTRO DE UN RANGO DE 1000 A 2000.
Pseudocódigo
Programa araroma
num_ara, num_paso, dig1,dig2,dig3,dig4: entero
*roma4, *roma3, *roma2, *roma1: caracter
Comienza
Repite
Escribe” Este programa transforma un número arábigo (entre 1000 y 2000) a romano”
Escribe” Teclea el numero”
Lee num_ara
Hasta (num_ara< 999 o num_ara>2001)
num_paso num_ara
dig4 num_paso mod 10
num_paso num_paso/10
dig3 num_paso mod 10
num_paso num_paso/10
dig2 num_paso mod 10
num_paso num_paso/10
dig1 num_paso mod 10
num_paso num_paso/10
roma4 “”
roma3 “”
roma2 “”
roma1 “”
Caso (dig4)
valor1: roma4 “I”
valor2: roma4 “II”
valor3: roma4 “III”
valor4: roma4 “IV”
valor5: roma4 “V”
valor6: roma4 “VI”
valor7: roma4 “VII”
valor8: roma4 “VIII”
valor9: roma4 “IX”
omisión:
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Fin caso
Caso (dig3)
valor1: roma3 “X”
valor2: roma3 “XX”
valor3: roma3 “XXX”
valor4: roma3 “XL”
valor5: roma3 “L”
valor6: roma3 “LX”
valor7: roma3 “LXX”
valor8: roma3 “LXXX”
valor9: roma3 “XC”
omisión:
Fin caso
Caso (dig2)
valor1: roma2 “C”
valor2: roma2 “CC”
valor3: roma2 “CCC”
valor4: roma2 “CD”
valor5: roma2 “D”
valor6: roma2 “DC”
valor7: roma2 “DCC”
valor8: roma2 “DCCC”
valor9: roma2 “CM”
omisión:
Fin caso
Caso (dig1)
valor1: roma1 “M”
valor2: roma1 “MM”
omisión:
Fin caso
Escribe” romano:”, roma1,roma2,roma3,roma4
Termina
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
int num_ara,num_paso,dig1,dig2,dig3,dig4;
char *roma4,*roma3,*roma2,*roma1;
int main()
{
do
{
printf("Este programa transforma un numero arabigo (entre 1000 y 2000) a romano");
printf(“\n Teclea el numero\n”);
scanf("%i",&num_ara);
} while (num_ara<999 || num_ara>2001);
num_paso = num_ara;
dig4 = num_paso % 10;
num_paso = num_paso / 10;
dig3 = num_paso % 10;
num_paso = num_paso / 10;
dig2 = num_paso % 10;
num_paso = num_paso / 10;
dig1 = num_paso % 10;
num_paso = num_paso / 10;
roma4="";
roma3="";
roma2="";
roma1="";
switch (dig4)
{
case 1: roma4 = "I";
break;
case 2: roma4 = "II";
break;
case 3: roma4 = "III";
break;
case 4: roma4 = "IV";
break;
case 5: roma4 = "V";
break;
case 6: roma4 = "VI";
break;
case 7: roma4 = "VII";
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
break;
case 8: roma4 = "VIII";
break;
case 9: roma4 = "IX";
break;
default:
break;
}
switch (dig3)
{
case 1: roma3 = "X";
break;
case 2: roma3 = "XX";
break;
case 3: roma3 = "XXX";
break;
case 4: roma3 = "XL";
break;
case 5: roma3 = "L";
break;
case 6: roma3 = "LX";
break;
case 7: roma3 = "LXX";
break;
case 8: roma3 = "LXXX";
break;
case 9: roma3 = "XC";
break;
default:
break;
}
switch (dig2)
{
case 1: roma2 = "C";
break;
case 2: roma2 = "CC";
break;
case 3: roma2 = "CCC";
break;
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
Num_Ara Num_paso Dig1 Dig2 Dig3 Dig4 Roma1 Roma2 Roma3 Roma4
1521 1521 1 5 2 1 Vacio Vacio Vacio Vacio
M L XX I
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
PARA N DADO HASTA QUE N SEA TAL QUE XN/N!<E (POR EJEMPLO E = 10-4).
Pseudocódigo
Programa sumserie
n1,i,f,c: entero
sumat,x,calculo: real
Comienza
Escribe” Este programa calcula la suma de una serie”
Repite
Escribe” Dame el valor de N(mayor a 0)”
Lee n1
Hasta (n1>=0)
Escribe” Dame el valor de x”
Lee x
Para (i=1; i<=n1;i+1)
Si (i=1)
sumat 1+x
Otro
f 1
c i
Repite
f f*c
c c-1
Hasta (c=1)
sumat sumat + (x^i/f)
Fin si
Fin para
f 1
c i
Repite
f f*c
c c-1
Hasta (c=1)
calculo x^n1/f
Escribe” La suma de la serie con N=”,n1,”en“,x,”es”,sumat
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
int n1,i,f,c;
float sumat,x,calculo;
int main()
{
printf("Este programa calcula la suma de una serie\n");
do
{
printf("Dame el valor de N (mayor a 0): ");
scanf("%i",&n1);
} while (n1<=0);
printf("Dame el valor de X: ");
scanf("%f",&x);
for (i=1;i<=n1;i++)
{
if (i==1)
{
sumat = 1 + x;
}
else
{
f=1;
c=i;
do
{
f=f*c;
c=c-1;
} while (c>=1);
sumat = sumat + pow(x,i)/f;
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
}
f=1;
c=n1;
do
{
f=f*c;
c=c-1;
} while (c>=1);
calculo = pow(x,n1) / f;
printf("\nLa suma de la serie con N=%i en %5.2f es %5.2f \n",n1,x,sumat);
getch();
printf("\nEl calculo es %5.2f \n",calculo);
getch();
printf("Gracias por utilizar este programa.\n");
getch();
}
Prueba de escritorio
f i calculo sumat x n1 c
1 1 4.5 4 3 3 2
2 2 8.5 1
1 3 13 3
3 2
6 1
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
14.- UNA COMPAÑÍA DE SEGUROS OFRECE POLÍTICA DE ASEGURAMIENTO DE PRIMA REDUCIDA, PORQUE SÓLO
ASEGURA PERSONAS QUE FUMAN MENOS DE 10 CIGARRILLOS Y PESAN MENOS DE 90 KILOS. ESCRIBA UN PROGRAMA
QUE PROCESE UNA LISTA DE SOLICITANTES. PARA CADA UNO DE ELLOS ESPECIFIQUE EL NOMBRE, NÚMERO DE
CIGARRILLOS FUMADOS A DIARIO Y EL PESO. LA SALIDA DEBE TENER:
a) EL NOMBRE DE CADA SOLICITANTE, EL NÚMERO DE CIGARRILLOS QUE FUMA DIARIO Y EL PESO, ASÍ
COMO UN MENSAJE QUE INDICA SI SE ACEPTA O RECHAZA A LA PERSONA. SI LA PERSONA HA SIDO
RECHAZADA, LA(S) RAZÓN(ES) DEBERÁ(N) IMPRIMIRSE.
b) EL NÚMERO PROMEDIO DE CIGARRILLOS Y EL PESO DE LOS SOLICITANTES QUE HAN SIDO ACEPTADOS.
Pseudocódigo
Programa seguros
tcig,resp,ciga,n,z: entero
peso, tpeso, prompeso, promciga: real
nombre : caracter
Comienza
n 0
tcig 0
tpeso 0
z 0
Escribe” Este programa determina si cumples los requisitos del seguro”
Escribe” Hay persona?(1-si, 2 u otro caracter –no)”
Lee resp
Mientras (resp=1)
z z+1
Escribe” Teclea tu nombre”
Lee nombre
Escribe” Teclea tu peso y numero de cigarrillos que fumas diario”
Lee peso, ciga
Si (peso<90 y ciga<10) entonces
Escribe nombre, ” has sido aceptado en el programa de seguros, tu peso es”,
peso,” y el numero de cigarrillos diarios es”,ciga
n n+1
tcig tcig+ciga
tpeso tpeso+peso
Otro
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include<stdio.h>
#include<conio.h>
int tcig,resp,ciga,n,z;
float peso,tpeso,prompeso,promciga;
char nombre [10];
int main ()
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
{
n=0;
tcig=0;
tpeso=0;
z=0;
printf("Este programa determina si cumples los requisitos del seguro\n");
printf("Hay persona? (1-si, 2 u otro caracter-no) \n");
scanf("%i",&resp);
while (resp==1)
{
z=z+1;
printf("Teclea tu nombre\n");
scanf("%s",&nombre);
printf("Teclea tu peso y numero de cigarillos que fumas diario\n");
scanf("%f %i",&peso,&ciga);
if (peso<90 && ciga<10)
{
printf("%s, has sido aceptado en el programa de seguros, tu peso es %5.3f y el numero de
cigarillos diarios es %i\n",nombre,peso,ciga);
n=n+1;
tcig=tcig+ciga;
tpeso=tpeso+peso;
}
else
{
if (peso>90 && ciga<10)
{
printf("%s no has sido aceptado en el programa porque tu peso es de %5.3f y el
requisito es que sea menor a 90, y el numero de cigarrillos es %i",nombre,peso,ciga);
}
else
{
if (peso<90 && ciga >10)
{
printf("%s no has sido aceptado en el programa porque el numero de cigarrillos
es %i y es mayor al requerido aunque tu peso sea %5.3f",nombre,ciga,peso);
}
else
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
printf("%s no has sido aceptado porque no cumples con los requisitos, tus
datos
son:\n peso = %5.3f y el numero de cigarillos es %i",nombre,peso,ciga);
}
}
}
printf("Hay persona? (1-si, 2 u otro caracter-no) \n");
scanf("%i",&resp);
}
if (n!=0)
{
prompeso=tpeso/n;
promciga=tcig/n;
printf("El total de personas que fueron aceptadas es %i, el promedio de pesos es %5.3f y el
promedio de cigarrillos es %5.3f\n",n,prompeso,promciga);
getch();
}
else
{
if (z!=0)
{
printf("Ninguna persona ha sido aceptada\n");
}
else
{
printf("Ninguna persona solicito el seguro\n");
}
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
a) PEDIR AL USUARIO UNA LETRA MAYÚSCULA (EL PROGRAMA NO DEBE CONTINUAR HASTA QUE EL
USUARIO OBEDEZCA)
b) LLAMAR A UN PROCEDIMIENTO PARA DETERMINAR E IMPRIMIR SI LA LETRA ES UNA VOCAL O UNA
CONSONANTE.
Pseudocódigo
Programa usua10
letra,letram: carácter
n:entero
Comienza
Escribe” Este programa determina si la letra dada es vocal o consonante”
Repite
Escribe” Teclea la letra (MAYUSCULA)”
letra caracter
limpia (caracter)
letram mayus(letra)
Mientras (letra<>letram)
Escribe” No es mayúscula la letra”, letra
Escribe” Vuelve a teclearlo”
letra caracter
limpia (caracter)
letram mayus(letra)
Fin mientras
Caso (Letra)
valor 'A': Escribe” La letra”, letra,” es vocal”
valor 'E': Escribe” La letra”, letra,” es vocal”
valor 'I': Escribe” La letra”, letra,” es vocal”
valor 'O': Escribe” La letra”, letra,” es vocal”
valor 'U': Escribe"La letra”, letra,” es vocal"
omisión: Escribe” La letra”, letra,” es consonante"
Fin caso
n n+1;
Hasta(n>=10)
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Codificación
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
char letra,letram;
int n;
int main ()
{
n=1;
printf("Este programa determina si la letra dada es vocal o consonante\n");
do
{
printf("Teclea la letra (MAYUSCULA)\n");
letra=getchar();
fflush (stdin);
letram=toupper(letra);
while(letra!=letram)
{
printf("No es mayuscula la letra %c \n",letra);
printf( "Vuelve a teclearlo\n");
letra=getchar();
fflush (stdin);
letram=toupper(letra);
}
switch(letra)
{
case 'A': printf("La letra %c es vocal\n",letra);
break;
case 'E': printf("La letra %c es vocal\n",letra);
break;
case 'I': printf("La letra %c es vocal\n",letra);
break;
case 'O': printf("La letra %c es vocal\n",letra);
break;
case 'U': printf("La letra %c es vocal\n",letra);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
break;
default: printf("La letra %c es consonante\n",letra);
break;
}
n=n+1;
} while(n<=10);
printf("\nGracias por utilizar el programa\n");
getch ();
}
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Prueba de escritorio
n letra letram
1 m M
2 “” M
3 M A
4 “” E
5 A P
6 “” R
7 E T
8 “” U
9 P I
10 “” O
R G
“”
T
“”
U
“”
I
“”
O
“”
G
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Arreglos multidimensionales
Arreglos bidimensionales
Conocidos también como matrices, son arreglos a cuyos elementos se debe acceder utilizando
múltiples índices. El número de dimensiones del arreglo depende tanto de las características del
problema que se va a resolver, como de las facilidades del lenguaje de programación que se utilice
para implementar la solución.
Componentes: hacen referencia a los elementos que se almacenan en cada una de sus casillas.
Ejemplo:
Escribe un programa en C que al recibir como dato un arreglo bidimensional cuadrado de tipo
entero de dimensión 10, imprima la diagonal de dicha matriz.
#include <stdio.h>
#include <conio.h>
const int TAM= 10;
int lectura (int [][TAM],int);
int imprime (int [][TAM],int);
int main ()
{
printf("Este programa llena una matriz y muestra su diagonal\n\n");
int MAT [TAM][TAM];
lectura (MAT,TAM);
printf("\n");
imprime (MAT,TAM);
printf("\nGracias por utlizar el programa\n");
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
getch();
}
Arreglos tridimensionales
En estos arreglos, cada elemento se debe referenciar por medio de tres o más índices.
A cada elemento del arreglo se accede por medio de tres índices. El primer índice se utiliza para las
filas, el segundo para las columnas y el tercero para la profundidad.
Referencia bibliográfica
Ordenamiento de vectores
Son los procesos que sirven para ordenar vectores o matrices con valores asignados
aleatoriamente, los más comunes son:
Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente,
intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias
veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista
está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista
los elementos durante los intercambios, como si fueran pequeñas "burbujas". Dado que
solo usa comparaciones para operar elementos, se lo considera un algoritmo de
comparación, siendo el más sencillo de implementar.
Ordenamiento de Shell
El método Shell es una versión mejorada del método de inserción directa. Este método
también se conoce con el nombre de inserción con incrementos decrecientes. En el
método de ordenación por inserción directa cada elemento se compara para su ubicación
correcta en el arreglo, con los elementos que se encuentran en la parte izquierda del
mismo. Si el elemento a insertar es más pequeño que el grupo de elementos que se
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Shell propone que las comparaciones entre elementos se efectúen con saltos de mayor
tamaño pero con incrementos decrecientes, así, los elementos quedarán ordenados en el
arreglo más rápidamente.
Referencia bibliográfica
Referencia electrónica
http://www.scribd.com/doc/1739233/Ordenamiento-en-C
http://blog.zerial.org/ficheros/Informe_Ordenamiento.pdf