\a alerta Hace emitir un beep al ordenador
\n nueva línea Hace saltar el cursor a la línea siguiente
\t tabulador Desplaza el cursor la distancia de un tabulador
\” comillas Imprime unas comilla
\\ barra inclinada Imprime una barra inclinada hacia la izquierda
EJERCICIOS
[Link] que acepte por teclado 2 números reales y presente
por pantalla su suma, resta y multiplicación.
ENTORNO
ENTERO: A, B, SUM, RES, MUL;
ALGORITMO
LEER (“Introduce primer valor”, A);
LEER (“Introduce segundo valor”, B);
SUM = A+B;
RES = A-B;
MULT = A*B;
ESCRIBIR (“La suma de los valores es: “, SUM);
ESCRIBIR (“La resta de los valores es: “, RES);
ESCRIBIR (“La multiplicación de los valores es: “, MULT);
FIN ALGORITMO
2.- Programa que lea el nombre y los dos apellidos de una
persona y lo presente con el siguiente formato <apellido1>
<apellido2> <Nombre>:
ENTORNO
CARÁCTER: N, A1, A2;
ALGORITMO
LEER (“Introduzca su nombre”, N);
LEER (“Introduzca su primer apellido”, A1);
LEER (“Introduzca su segundo apellido”, A2);
ESCRIBIR (“Bienvenido “, A1, A2, N);
FIN ALGORITMO
3.- Programa que acepte un número entero por teclado y
muestre por pantalla su tabla de multiplicar:
ENTORNO
ENTERO: I, N; /* I Índice, N Numero de la tabla */
ALGORITMO
LEER (“Introduce numero para tabla multiplicar: “, N);
PARA (I=1) HASTA (I=10) HACER
ESCRIBIR (N,” · “, I,” = “, N · I); /* Esto muestra por pantalla la tabla
del número N */
FIN_PARA
FIN ALGORITMO
4.- Programa que calcule el IVA de una cantidad introducida por
teclado (IVA = 16%):
ENTORNO
ENTERO: N;
ALGORITMO
LEER (“Introduzca la cantidad para calcular IVA”, N);
ESCRIBIR (“EL IVA de “, N, “ es: “, N*0,16);
FIN ALGORITMO
5.- Calcular la longitud de una circunferencia cuyo radio se
introduzca por teclado (2л*r):
ENTORNO
ENTERO: r;
ALGORITMO
LEER (“Introduzca el radio de la circunferencia”, r);
ESCRIBIR (“La longitud de la circunferencia es “, r*2*3,1415);
FIN ALGORITMO
6.- Aceptar desde teclado los siguientes datos de un individuo;
Nombre, apellidos, dirección:
ENTORNO
CARÁCTER: N, A, D[30];
ALGORITMO
LEER (“Introduzca su nombre: “, N);
LEER (“Introduzca su apellido: “, A);
LEER (“Introduzca su dirección:”, D);
ESCRIBIR (“Hola”, N, A, “ su dirección es: “, D);
FIN ALGORITMO
7.- Programa que calcula el precio de un telegrama, teniendo
como datos de entrada, 2 dígitos para el código de provincia, si
es urgente o no y deberá calcular el importe, sabiendo que aplica
una tarifa mínima de 3€ (2€ si se trata dentro de la misma
provincia aplicables si no se sobrepasan las 10 primeras
palabras. Por cada palabra que exceda de 10, 20 céntimos si es
fuera y 15 céntimos en la misma provincia. Si es urgente tiene
un recargo de 50% sobre el precio final:
ENTORNO
ENTERO: PRECIO, NUMPAL, TAR, CP;
CARÁCTER: URG;
ALGORITMO
LEER (“Introduce numero de palabras: “, NUMPAL);
LEER (“Código de ciudad destino: “, CP);
LEER (“¿Es urgente? “, URG);
SI (CP<>23) ENTONCES
PRECIO=3;
TAR=0,2;
SINO
PRECIO=2;
TAR=0,5;
SI (NUMPAL>10) ENTONCES
PRECIO=PRECIO + [(NUMPAL-10) · TAR);
SI (URG==´s´) ENTONCES
PRECIO=PRECIO · 1,5; /* Es el 50% */
ESCRIBIR (“El precio es: “, PRECIO);
FIN ALGORITMO
8.- Programa que deduzca el número de días de un mes en
función del número de orden dentro del calendario.
Considerando años bisiestos:
PROGRAMA MESES
ENTORNO
ENTERO: MES;
CARÁCTER: BIS;
ALGORITMO
LEER (“Introduce numero de mes: “, MES);
LEER (“¿Es bisiesto? S/N “, BIS);
SEGÚN (MES) ENTRE
1: ESCRIBE (“El mes es Enero y Tiene 31 Días”);
2: SI (BIS==`S`) ENTONCES
ESCRIBIR (“El mes es Febrero y tiene 29 Días”);
SINO
ESCRIBIR (“El mes es Febrero y tiene 28 Días”);
3: ESCRIBE (“El mes es Marzo y Tiene 31 Días”);
4: ESCRIBE (“El mes es Abril y Tiene 20 Días”);
… /* Así hasta llegar a Diciembre */
FIN_SEGUN
FIN ALGORITMO
9.- Dado un numero por teclado, desglosarlo en billetes y
monedas de curso legal:
PROGRAMA DESGLOSADOR
ENTORNO
REAL: DIN, MON, BILL;
/* BILLETES (500, 200, 100, 50, 20, 10, 5) */
/* MONEDAS (2, 1, 0´5, 0´2, 0´1, 0´05, 0´02) */
ALGORITMO
SI (DIN>=500) ENTONCES
MON=DIN DIV 500; /* DIV Da como resultado el cociente de la
división */
DIN=DIN MOD 500; /* MOD Da como resultado el resto de la
división */
FIN_SI
ESCRIBIR (“Billetes de 500€ son: “, MON);
SI (DIN>=200) ENTONCES
MON=DIN DIV 200;
DIN=DIN MOD 200;
FIN_SI
ESCRIBIR (“Billetes de 200€ son: “, MON);
… /* Así hasta llegar a la ultima moneda */
FIN ALGORITMO
10.- Programa que genere el Factorial del número que le
introduzcamos por teclado:
PROGRAMA FACTORIAL
ENTORNO
ENTERO: FAC=1, F, N; /* Ejemplo Factorial de 7!= 7 · 6 · 5 · 4 · 3
· 2 */
ALGORITMO
LEER (“Introduce numero para factorial: “, F);
PARA (N=F) HASTA (N=2) HACER
FAC=FAC · N;
FIN_PARA
ESCRIBIR (“El factorial de “, F,”es: “, FAC);
FIN ALGORITMO
Crear un programa que sume un número que introduzcamos por
teclado a si mismo tantas veces como se lo indiquemos:
PROGRAMA SUMAS SUCESIVAS
ENTORNO
ENTERO: N, S, I, RESUL; /* N numero S Numero de
veces que sumamos */
ALGORITMO
LEER (“Introduzca Numero para sumar: “, N);
LEER (“Introduzca Veces que sumaremos: “, S);
RESUL=0; /* Para que no intervenga 1ª vez en la suma */
PARA (I=S) HASTA (I=1) HACER /* El numero de veces que deseamos
que se sume */
RESUL=RESUL+N;
FIN_PARA
ESCRIBIR (“El resultado de la suma es: “, RESUL);
FIN ALGORITMO
12.- Sacar por pantalla la tabla de multiplicar de los 5 primeros
números:
PROGRAMA TABLA5NUM
ENTORNO
ENTERO: N, M; /* Los utilizamos de índices y como
números de tablas */
ALGORITMO
PARA (N=1) HASTA (N=5) HACER
PARA (M=1) HASTA (M=10) HACER
ESCRIBIR (N,” x “, M,” = “, N*M);
FIN_PARA
FIN_PARA
FIN ALGORITMO
13.- Calcula el doble de un número introducido por teclado
mientras el número no sea cero:
PROGRAMA DOBLENUM
ENTORNO
ENTERO: N, DOBLE;
ALGORITMO
LEER (“Introduce un numero para calcular doble: “, N);
MIENTRAS (N <> O) HACER
ESCRIBIR (“El doble de “, N, “ es: “, N*N);
LEER (“Introduzca otro numero para calcular o pulse cero para
salir”, N);
FIN_MIENTRAS
FIN ALGORITMO
14.- Calcula la suma de los cuadrados de los números pares
comprendidos entre 1 y 100:
PROGRAMA CALCUADRAD
ENTORNO
ENTERO: S, I, N; /* S= suma, N= números, I= índice */
ALGORITMO
ESCRIBIR (“Se procede a la suma de los cuadrados de los números
pares entre 1-100”);
S=0;
I=2;
MIENTRAS I<=100 HACER
S= S+(I*I);
I= I+2;
FIN_MIENTRAS
ESCRIBIR (“La suma de los cuadrados de los números pares entre 1-100
es: “, S);
FIN ALGORITMO
15.- Introduce un número menor de 500, pasarlo a números
Romanos y repetir la operación cuantas veces se quiera.
PROGRAMA ROMANIZATOR
ENTORNO
ENTERO: R, I, N;
ALGORITMO
LEER (“Introduce un numero menor de 5000 para pasar a romano: “,
N);
MIENTRAS (N >= 5000) HACER
LEER (“Error - Introduzca un numero menor de 5000: “, N);
FIN_MIENTRAS
SI (N>= 1000) ENTONCES
R= N MOD 1000; /* MOD = Resto de la división */
N= N DIV 1000; /* DIV = Cociente de la división */
PARA I=0 HASTA I=N HACER
ESCRIBIR (“M”);
FIN_PARA
FIN_SI
N = R; /* Seguimos trabajando con el resto */
SI (N>=500) ENTONCES
R = N MOD 500;
N = N DIV 500;
PARA I=0 HASTA I=N HACER
ESCRIBIR (“D”);
FIN_PARA
FIN_SI
N = R;
… /* Repetimos este proceso */
FIN ALGORITMO
16.- Algoritmo que obliga a un operador a introducir un número
par entre 3 y 500:
PROGRAMA OBLIGAPAR
ENTORNO
ENTERO: N;
ALGORITMO
REPETIR
LEER (“Introduce un numero par entre 3 y 500: “, N);
HASTA (N>3) Y (N<=500) Y (N MOD 2==0);
ESCRIBIR (“Bien Hecho operador”);
FIN ALGORITMO
17.- Programa que calcula el factorial de un número y repite el
proceso hasta que se lo indique el usuario:
PROGRAMA FACTREPLAY
ENTORNO
ENTERO: FAC, F, N;
ALGORITMO
REPETIR
LEER (“Introduce numero para factorial o cero para salir: “, F);
FAC=1;
PARA (N=F) HASTA (N=2) HACER
FAC=FAC*N;
FIN_PARA
ESCRIBIR (“El factorial de “, F,” es: “, FAC);
HASTA (F==0);
FIN ALGORITMO
18.- Contar y sumar los múltiplos de 10 hasta un cierto número
que introduzcamos por teclado y mostrarlo por pantalla:
PROGRAMA MULTI10
ENTORNO
ENTERO: N, M;
ALGORITMO
LEER (“Introduce el numero de veces que quieres que se realice el
múltiplo de 10: ”, N);
M=10;
PARA N HASTA 1 HACER
M=10+M;
FIN_PARA
ESCRIBIR (“El múltiplo de 10 pedido es: “, M);
FIN ALGORITMO
FIN ALGORITMO
.- Determinar cuantas cifras tiene un número entero positivo
introducido por teclado y repetir el proceso hasta que el
operador se lo indique:
PROGRAMA CIFRAS
ENTORNO
ENTERO: N, I, CIF; /* N= Numero, I= Indicador, CIF=Numero
Cifras */
ALGORITMO
I=10;
CIF=1;
LEER (“Introduce numero para indicar las cifras que lo forman: ”, N);
MIENTRAS (N DIV I) <> 0 HACER
I = I*10;
CIF=CIF+1;
FIN_MIENTRAS
ESCRIBIR (“El numero de cifras de este numero es: ”, CIF);
FIN ALGORITMO
20.- Crear un Juego que consista en que el operador tiene que
adivinar un número compren-
dido entre 1-100 y que se vuelva a repetir el juego cuando el
operador lo encuentre si el lo desea:
PROGRAMA ADIVINUM1
ENTORNO
ENTERO: INF, SUP, NUM, GEN, N;
CARÁCTER: REP;
ALGORITMO
REPETIR
REP=´S´;
N=0;
INF=1;
SUP=100;
GEN=INT (RANDOM*100)+1; /* El +1 es para que sea de 1-
100 en vez de 0-99 */
REPETIR
N=N+1;
LEER (“Introduce un numero entre ”, INF, “ y “, SUP,” : “,
NUM);
SI (NUM<GEN) ENTONCES
INF=NUM;
SINO
SUP=NUM;
HASTA (NUM==GEN);
ESCRIBIR (“Felicidades, has acertado en “, N,” intentos”);
LEER (“¿Desea volver a jugar? S/N”, REP);
HASTA (REP==´N´);
FIN ALGORITMO
21.- Simular el lanzamiento de una moneda al aire y visualizar si
ha salido cara o cruz. Repetir el proceso tantas veces como se
quiera:
PROGRAMA MONEDA
ENTORNO
CARÁCTER: R;
ENTERO: M;
ALGORITMO
REPETIR
ESCRIBIR (“Se va a proceder al lanzamiento de la moneda”);
M= INT (RANDOM*2);
SI (M==0) ENTONCES
ESCRIBIR (“Cara”);
SINO
ESCRIBIR (“Cruz”);
FIN_SI
LEER (“¿Otra tirada? S/N”, R);
HASTA (R<>´s´) o (R<>´S´);
FIN ALGORITMO
22.- Programa que simule 100 tiradas de un dado de seis caras y
contar las veces que aparece el número 4:
PROGRAMA DADO4
ENTORNO
ENTERO: CONT, I, DADO;
ALGORITMO
CONT=0;
PARA (I=1) HASTA (I=100) HACER
DADO = INT (RANDOM*6)+1; /* El +1 es para que sea de 1-
6 en vez de 0-5 */
SI (DADO == 4) ENTONCES
CONT=CONT+1;
FIN_SI
FIN_PARA
ESCRIBIR (“El numero cuatro aparece “, CONT,” veces”);
FIN ALGORITMO
23.- Programa que simule 100 tiradas de 2 dados a la vez y
contar las veces que entre los dos suman 10:
PROGRAMA DOBLEDADO
ENTORNO
ENTERO: CONT, I, DADO1, DADO2;
ALGORITMO
CONT=0;
PARA (I=1) HASTA (I=100) HACER
DADO1= INT (RANDOM*6)+1;
DADO2= INT (RANDOM*6)+1;
SI (DADO1+DADO2==10) ENTONCES
CONT=CONT+1;
FIN_SI
FIN_PARA
ESCRIBIR (“El numero de veces que han sumado 10 es: ”, CONT);
FIN ALGORITMO
FIN ALGORITMO
Todo este tema va a estar basado en teoría y practica aplicada, es decir
cada cosa que sea explicada se vera aplicada en código c, espero que
con este método nos vayamos familiarizando con el lenguaje. El primer
programa será “Hola mi nombre” (estoy un poco harto del hola mundo
xD):
#include <stdio.h>
main()
char nom[20];
printf ("\nEscribe tu nombre: ");
scanf ("%s",nom);
printf ("\nHola %s",nom);