You are on page 1of 32

Aqu algunos programitas en Delphi para mis amigos y amigas de

Ingeniera en sistemas

Autor: ELIAS LOPEZ


Email: eliaslopez_j@hotmail.com

Los recomiendo que hagan su prueba de escritorio de cada programita para q pueden verificar si verdaderamente funcionan bien Ojo Si hay errores ortogrficos no se ran okey 1.-elaborar un programita que muestre "hoy es mi primer da como programador"

En delphi
solucion:

program uno;
{$APPTYPE CONSOLE} uses SysUtils; begin //inicio write('hoy es mi primer da como programador'); // muestra en la pantalla de la consola readln; end. //fin

en c++
#include "iostream.h" // librera del programa principal #include "conio.h" // es la librera para getch(); //--------------------------------------------------------------------------#pragma argsused void _tmain(int argc, _TCHAR* argv[]) // programa principal { // en c++ la llave funciona como "begin " printf("'hoy es mi primer da como programador ");//el printf es igual que write en delphi getch(); // getch() funciona como "readln" es para que se mantenga //estatico la consola mientras se ejecuta } // la llave que cierra funciona como "end"

2.-elaborar un programa que sume dos valores introducidos por teclado y nos muestre en la pantalla solucion.program dos; {$APPTYPE CONSOLE} uses SysUtils; Var//variable a,b,suma:integer; // declaracin de variables necesarios begin write('digite el primer valor '); // pide el valor read(a); // lee el valor write('digite el segundo valor '); // pide el otro valor read(b); //lee el valor suma:=a+b; // suma los dos valores write('la suma ',a ,' + ',b,' es = ',suma); //muestra la suma readln; readln; end.

En c++.#include <stdio.h> #include <conio.h> int main () { //brgin int a, b,suma; // declaracion de variables printf("digite el primer valor: "); scanf("%d", &a);// lee el valor de a printf("digite el segundo valor: "); scanf("%d",&b); // lee el valor de b suma=a+b; printf("Suma = %d\n",suma); // imprime la suma total getch(); // pause consola

3.-elaborar un programa que muestre el cuadrado y el cubo de un Numero introducido por teclado ej: el numero 9 al cuadrado es 81 y al cubo es 729 sol.program tres; {$APPTYPE CONSOLE} uses SysUtils; var n,cuadrado,cubo:integer; begin write('introducir un valor '); read(n); cuadrado:=n*n; //multiplica el valor dos veces writeln('el ',n,' al cuadrado es = ',cuadrado); //muestra el valor al cuadrado cubo:=n*n*n; //multiplica el numero introducido tres veces writeln('el ',n, ' al cubo es = ',cubo); // muestra el numero al cubo readln; readln; end.

En c++.#include <stdio.h> #include <conio.h> int main () { int n,cuadrado,cubo; printf("introducir un valor "); scanf("%d",&n); cuadrado=n*n; //multiplica el valor dos veces printf("al cuadrado es =%d \n",cuadrado); //muestra el valor al cuadrado cubo=n*n*n; //multiplica el numero introducido tres veces printf("al cubo es = %d",cubo); // muestra el numero al cubo getch(); // pause consola } //end

4.- encontrar el mayor y el menor de 5 nmeros program cuatro; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,d,f:integer; begin write('digite el primer valor '); read(a); write('digite el segundo valor '); read(b); write('digite el tercer valor '); read(c); write('digite el cuarto valor '); read(d) ; write('digite el quiento valor '); read(f); writeLN('******RESULTADOS******'); if (a>b) and (a>c)and (a>d)and (a>f)then writeln(' el mayor es ',a) else if (b>a) and (b>c) and (b>d)and (b>f) then writeln('el mayor es b ',b) else if (c>a) and (c>b)and (c>d)and (c>f) then writeln('el mayor es ',c) else if (d>a)and (d>b) and (d>C) and (d>f) then writeln('el mayor es ',d) 5

else writeln('el mayor es ',f); if (a<b)and (a<c)and (a<d)and(a<f) then writeln('el menor es ',a) else if (b<a)and (b<c) and (b<d)and(b<f) then writeln(' menor es ',b) else if (c<a) and (c<b) and (c<d)and (c<f) then writeln('el menor es ',c ) else if (d<a)and(d<b)and(d<c)and (d<f) then writeln('el menor es ',d) else writeln('el menor es ',f); readln; readln; end. En c++.//--------------------------------------------------------------------------#include <stdio.h> #include <conio.h> int main (void) { int a,b,c,d,f; printf("digite el primer valor "); scanf("%d",&a); printf("digite el segundo valor "); scanf("%d",&b); printf("digite el tercer valor "); scanf("%d",&c); printf("digite el cuarto valor "); scanf("%d",&d); printf("digite el quinto valor "); scanf("%d",&f); printf("******RESULTADOS******\n"); if ((a>b) && (a>c)&& (a>d)&& (a>f) ) printf(" el mayor es %d\n",a); else if ((b>a) && (b>c) && (b>d)&& (b>f) ) printf("el mayor es b %d\n ",b) ; 6

else if ((c>a) && (c>b)&&(c>d)&& (c>f)) printf("el mayor es %d\n",c) ; else if ((d>a)&& (d>b)&& (d>c) && (d>f)) printf("el mayor es %d\n",d) ; else printf("el mayor es ",f); if ((a<b)&& (a<c)&&(a<d)&&(a<f)) printf("el menor es %d\n",a) ; else if ((b<a)&& (b<c) && (b<d)&&(b<f)) printf(" menor es %d\n",b) ; else if ((c<a)&&(c<b) && (c<d)&&(c<f)) printf("el menor es %d\n",c ) ; else if ((d<a)&(d<b)&(d<c)&&(d<f)) printf("el menor es %d\n",d) ; else printf("el menor es %d\n",f); getch(); }

5.-desarrollar un programa que muestre el factorial de un nmero ej: si n=5 1*2*3*4*5=120 program cinco; {$APPTYPE CONSOLE} uses 7

SysUtils; var n,p,c:integer; begin repeat write('digite un numero'); read(n); until (n>=0); //el repeat controla el nmero que va ingresar en este caso solo acepta nmeros // >= cero un numero negativo no ingresa y el until vuelve a pedir un numero nuevo al usuario. p:=1; c:=2; while c<=n do begin p:=p*c; //aqu se genera el factorial c:=c+1; // contador necesario para que funcione correctamente el while end; write('el factorial de ',n,' es = ',p); // muestra el factorial readln; readln; end.

En c++.#include <stdio.h> #include <conio.h> int main () { int n,p,c; do // este es como el repeat { printf("digite un numero"); scanf("%d",&n); } while(n<0); p=1; c=2; while (c<=n) { p=p*c; //aqu se genera el factorial c=c+1; // contador necesario para que funcione correctamente el while } printf("el factorial del numero es %d",p); // muestra el factorial getch(); 8

} 6.- desarrollar un programa que introducidos tres nmeros muestre el mayor o si son iguales que diga que son iguales program seis; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c:integer; begin write('digite el valor de a '); read(a); write('digite el valor de b '); read(b); write('digite el valor de c '); read(c); if (a<>b)and (a<>c) then begin if (a>b)and(a>c) then writeln('el mayor es ',a) else if (b>a) and (b>c) then writeln('el mayor es ',b) else write('el mayor es ',c); end else if (a=b)and(a=c) then writeln('los numeros son iguales ') ; readln; readln; 9

end.

7.- desarrollar un programa que verifique si un nmero introducido por teclado es capica Ejemplo: si n=121 el nmero es capica porque al invertir queda 121, si n=122 no es capica porque al revs es 221 Program siete; {$APPTYPE CONSOLE} uses SysUtils; var n,c,d,b,aux:integer; begin write('digite el numero '); read(n); b:=n; aux:=0; while n>0 do begin d:= n mod 10; n:=n div 10; aux:=aux*10 +d; end; 10

if b=aux then write('el numero ',b,' es capicua porque al reves ', aux) else write(' el numero ',b,' no es capicua porque al reves ',aux); readln; readln; end.

8.-al finalizar sus estudios en la universidad un estudiante saca el listado de sus notas
a).-cuantas notas tiene reprobados. b).-cuantos aprobados. c).- el promedio de las notas. d).- los promedios de las notas aprobados y reprobados. Los datos a leer por teclado son registro, cantidad de notas, semestre, notas. program Project26; {$APPTYPE CONSOLE} uses SysUtils; var materias,contador,ca,cr,registro,cnotas,nota,notafinal,semestre:integer; aprobado,sa,sr,reprobado:real; nombre:string; begin write('digite el nombre del estudiante : '); read(nombre); write('digite el registro del estudiante : ' ); read(registro); write('digite el semestre en lo que esta :'); read(semestre); 11

write('digite la cantidad de notas : '); read(cnotas); contador:=0; ca:=0; cr:=0; notafinal:=0; sa:=0; sr:=0; repeat contador:=contador+1; write(' digite la ',contador,' nota '); read(nota) ; notafinal:=notafinal+nota; if nota>=51 then begin ca:=ca+1; sa:=sa+nota; end else begin cr:=cr+1; sr:=sr+nota; end; until (cnotas=contador); writeln('las notas aprobadas son ',ca); writeln('las nota reprobadas son ',cr); writeln('la la suma total de sus notas es ',notafinal); writeln('le promedio total de las notas es ',notafinal/(cr+ca):0); writeln('el promedio de las notas aprobadas es ',sa/ca:0); writeln('el promedio de las notas reprobadas es ',sr/cr:0); readln; readln; end.

12

8.-a un trabajador le descuentan de su sueldo el 10% si su sueldo es menor o igual a 1000. Por encima de 1000 y hasta 2000 el 5% del adicional, y por encima de 2000 el 3% del adicional. Calcular el y sueldo neto que recibe el trabajador dado su sueldo. Solucin.program ocho; {$APPTYPE CONSOLE} uses SysUtils; var sueldo1, sueldo,sueldop,descuento2,descuento1,descuento3:real; nombre: string; begin write('digite el nombre del trabajador: '); read(nombre); write('digite su sueldo: '); read(sueldo); sueldo1:=sueldo; descuento1:=sueldo*(0.03); descuento2:=sueldo*(0.05); descuento3:=sueldo*(0.10); if sueldo<=1000 then begin sueldoP:=sueldo1-descuento3; write('el sueldo liquido pagable a ',nombre, ' es ',sueldoP); end 13

else if (sueldo>1000) or (sueldo<=2000) then begin sueldop:=sueldo1-descuento2; write('el sueldo liquido pagable a ',nombre, ' es ',sueldoP); end else if (sueldo>2000) then begin sueldop:=sueldo1-descuento1; write('el sueldo liquido pagable a ',nombre, ' es ',sueldoP); end; readln; readlN; end.

9.- Elaborar un programa que dado un nmero muestre los das de la semana program nueve; {$APPTYPE CONSOLE} uses SysUtils; var n,a:integer; begin write('digite un numero de 1 al 7: '); read(n); case n of 1: write('lunes '); 2: write('martes'); 3: write('miercoles'); 4: write('jueves'); 5: write('viernes'); 6: write('sabado'); 7: write('domingo'); 14

end; readln; readln; end.

///____________________SERIES Y SUMATORIAS_______________________ 1.- desarrollar un programa que genere la siguiente serie :1,22,333,4444,55555,.etc program uno; {$APPTYPE CONSOLE} uses SysUtils; var n,c,s,p:integer; begin write('digite la cantidad'); readln(n); c:=1; s:=1; p:=1; while c<=n do begin write(s,','); p:=p*10+1; c:=c+1; s:=c*p; end; readln; end.

15

2.-desarrollar un programa que genere la serie de Fibonacci 1,1,2,3,5,8,13,21,34,55. program dos; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,f,n:integer; begin write('digite la cantidad '); readln(n); a:=1 ; b:=1; c:=1; if c<n then begin write(a,','); c:=c+1; end; if c<=n then begin write(b,','); c:=c+1; end; while c<=n do begin f:=a+b; write(f,',') ; a:=b; b:=f; c:=c+1; end; readln; end.

16

3.- desarrollar un programa que genere la siguiente serie 1,2,3,4,3,2,1,2,3,4,3,2,1,2,3,4,3,2,1 program tres; {$APPTYPE CONSOLE} uses SysUtils; var i,c,n:integer; begin write('digite la cantidad___ '); read(n); i:=1; writeLN(' RESULTADO '); while i<=n do begin c:=1; while (c<=4)and (i<=n) do begin write(c,','); c:=c+1; i:=i+1; end; c:=c-2; while (c>1)and (i<=n) do begin write(c,','); c:=c-1; i:=i+1; end; end; readln; readln; end. 17

4.- desarrollar la siguiente serie .si n= 10 1,2,3,4,5,5,4,3,2,1 Si n=11 1,2,3,4,5,6,5,4,3,2,1 Program cuatro; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,d,n,f:integer; begin write('digite la cantidad '); readln(n); if n mod 2=0 then begin c:=1; while c<n do begin while c<=((n div 2)) do begin write(c,','); if c=(n div 2) then begin b:=c; while b>0 do begin write(b,','); b:=b-1; c:=c+1; end; end; c:=c+1; end; end; 18

end else if n mod 2<>0 then begin c:=1; while c<n do begin while c<=((n div 2)) do begin write(c,','); if c=(n div 2) then begin b:=c+1; while b>0 do begin write(b,','); b:=b-1; c:=c+1; end; end; c:=c+1; end; end; end; readln; readlN; end.

5.- desarrollar un programa la siguiente serie 8,1,7,2,6,3,5.. program cinco; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,d,n,sw:integer; 19

begin writeln('digite la cantidad'); readln(n); a:=8;b:=1; sw:=1; C:=1; while c<=n do begin if sw=1 then begin write(a,','); a:=a-1 ; sw:=2 end else if sw=2 then begin write(b,','); b:=b+1; sw:=1; end; c:=c+1; end; readln; end.

6.-Desarrollar un programa que genere la siguiente serie si n=31 1,2,3,4,5,5,4,3,2,1,1,2,3,4,4,3,2,1,1,2,3,3,2,1,1,2,2,1,1,1 Sloucion.program seis; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,n,i:integer; begin 20

write ('digite la cantidad '); read(n); i:=0; a:=5; while i<=n do begin c:=1; while (c<=a) and (i<n) do begin write(c,',') ; c:=c+1; i:=i+1; end; c:=c-1; while (c>=1) and (i<n) do begin write(c,','); c:=c-1; i:=i+1; end; a:=a-1; end; readln; readln; end.

///-----------------------------NUMEROS NATURALES--------------------------------1-desrrollar un programa que cuente todos los dgitos que contiene un nmero introducido por teclado ejemplo: 8634 tiene 4 dgitos. sol.program uno; {$APPTYPE CONSOLE} 21

uses SysUtils; var n,c,d:integer; begin write('digite el numero '); read(n); c:=0; write('el numero ',n); while n>0 do begin d:= n mod 10; // extrae el digito cada cuando se divide n:=n div 10; //divide el numero hasta cumplir la condicion c:=c+1; //cuenta los digitos end; write(' tiene ',c,' dgitos '); //muestra el resultado en la consola readln; // es para que la consola se mantenga esttico unos momentos readln; end.

2-desrrollar un programa que cuente los nmeros pares dentro de un Numero introducido por teclado. sol.program dos; {$APPTYPE CONSOLE} uses SysUtils; var n,c,d:integer; //declaracin de variables necesarios begin write('digite el numero '); // pide el numero al usuario read(n); // lee el numero c:=0; 22

write(' el numero ',n); while n>0 do begin d:= n mod 10; //el mod extrae el digito del numero n:=n div 10; //el numero se divide hasta que cumpla la condicion if d mod 2=0 then // aqui pregunta si el dig es par.por verdadero entra dentro begin c:=c+1; //cuenta los dgitos pares; end; end; write(' tiene ',c,' digitos pares'); readlN; readln; end.

3.-desarrollar un programa dado un numero decimal introducido por teclado convierta a binario ejemplo: 5510 1101112 program tres; {$APPTYPE CONSOLE} uses SysUtils; var aux,p,n,d:integer; begin write('digite el numero que desea a convertir a binario '); read (n); // numero leido en decimal aux:=0; //es un acumulador por lo tanto inicializo en cero p:=1; //potencia que sirve para organizar el nuevo numero, inicializo en uno write('el numero ',n, ' en binario es '); while n>0 do //si el numero introducido por el usuario es mayor que cero entra entra begin
23

d:=n mod 2; // se extrae el primer numero en binario n:=n div 2; // numero que se divide hasta que cumpla la condicion aux:=aux+d*p; // aqui se acumula y se forma el numero binario p:=p*10; //la potencia sigue la sig secuencia 10,100,1000,10000 end; n:=aux; // aqu lo guardamos a N el nuevo valor que contiene AUX; write(n); //muestra el resultado readln; readln; end.

4.- desarrollar un programa que convierta el nmero decimal a cualquier otro base menores a diez. Ejemplo {1.9} program cuatro; {$APPTYPE CONSOLE} Uses SysUtils; var aux,p,b,n,d,base:integer; begin write(' digite el nmero en decimal '); read(n); //lee el numero write('digite la base ala que quiere convertir '); read(base); // lee la base b:=0; // sumador o acumulador p:=1; write('el nmero ',n); if base<10then // esta condicin controla a la base que solo tienen que ser menores a10
24

begin while n>0 do begin d:= n mod base; // se extrae el digito n:=n div base; // se divide el numero hasta que cumpla la condicin b:=p*d+b; // esto es el que genera el nuevo nmero deseado p:=p*10; // potencia end; write(' en base ',base,' es ',b); //muestra el nuevo numero readLn; readln; end end.

5.- dado un digito eliminar sus iguales si el digito=3 y n=345323 Resultado=452 Solucin.program cinco; {$APPTYPE CONSOLE} uses SysUtils; var aux,p,n,d,dig,c:integer; begin write('digite el numero '); // aqu pide un numero cualquiera read(n); // lee el numero introducido write('digite el digito que desea eliminar '); // pide el digito read(dig); //lee el digito aux:=0; // es un acumulador o sumador por lo tanto se inicializa en cero p:=1; // es el inicio de la potencia while n>0 do
25

begin d:= n mod 10; //se extrae el digito n:= n div 10; // se divide el numero hasta que cumpla la condicin (n>0) if dig<>d then // aqui pregunta si el digito introducido por teclado es diferente que el //digito extraido con el MOD ,si es verdadero entra begin aux:=aux+p*d; // AQUI se genera el Nuevo numero p:=p*10; // potencia end end; n:=aux; // aqu se lo devolvemos al n su nuevo valor (452) write(' el nuevo nmero es ',n); readln; readln; end.

6.- eliminar los dos ltimos dos dgitos si n = 4583 resultado=45 program seis; {$APPTYPE CONSOLE} uses SysUtils; var n:integer; begin write('digite el nmero'); read(n); if (n<-99) or (n>99) then n:= n div 100; write('el nmero es:', n); readln; readln;
26

end.

7.-dada una posicin y una cantidad devolver el nmero correspondiente pos=2 catidad=3 si n=2344634 resultado=344 program siete; {$APPTYPE CONSOLE} uses SysUtils; var n,c,d,aux,p,c2,acu,c3,cdigitos,pos:integer; begin write('digite el numero ' ); read(n); write('digite la posicin '); read(pos); write('digite la cantidad de '); read(cdigitos); p:=1; c:=c+1; c2:=0; c3:=0; acu:=0; aux:=0; while n>0 do begin d:=n mod 10; n:= n div 10; aux:=aux*10+d; c:=c+1; end; while aux>0 do
27

begin d:=aux mod 10; aux:= aux div 10; c3:=c3+1; if c3=pos then begin while c2<cdigitos do begin acu:=acu*10+d; d:= aux mod 10; aux:=aux div 10; c2:=c2+1; end; end; end; n:=acu; write('la catidad que pidio es ',n); readln; readln; end.

8.-dado un posicin insertar un numero pos=3, numero =34 N=25124 resultado=2534124 Solucin.program ocho; {$APPTYPE CONSOLE} uses SysUtils; var aux,aux1,n,b,d,dd,di,aux2,aux3,a,dddd,ddd,dig,c,pos,p :integer;
28

begin write(' digite el nmero '); read(n); write('digite el numero que va insertar '); read(dig); a:=dig; write('digite la posicin '); read(pos); aux:=0; p:=1; aux1:=0; aux2:=0 ; aux3:=0 ; while n>0 do begin d:=n mod 10; n:=n div 10; aux:=aux*10+d; b:=aux; end; while dig>0 do begin dd:= dig mod 10; dig:=dig div 10; aux3:=aux3*10+dd end; C:=0; while b>0 do begin ddd := b mod 10; b:=b div 10; c:=c+1; if c=pos then while aux3>0 do begin dd:= aux3 mod 10; aux3:=aux3 div 10; aux1:=aux1+dd*p;
29

p:=p*10; end; aux1:=aux1+ddd*p; p:=p*10; end; while aux1>0 do begin di:= aux1 mod 10; aux1:=aux1 div 10; aux2:=aux2*10+di; end; write('el digito ',a,' ya fue insertado a la posicin ',pos,' y el nuevo nmero es ',aux2); readln; readln; end.

9.- dado dos posiciones intercambiar sus dgitos pos1=2, pos2=5 n 345723 resultado=325743. Solucin.program nueve; {$APPTYPE CONSOLE} uses SysUtils; var a,aux,b,d,c,ccc,pos1,cc,pos2,p,dd,nnn,nn,n:integer; begin write('digite un nmero '); read(n);
30

write('digite la posicion uno '); read(pos1); write('digite la segunda posicion '); read(pos2); c:=0; nn:=n; nnn:=n; p:=1; aux:=0; while nn>0 do begin nn:=nn div 10; c:=c+1; cc:=c; ccc:=c; end; while nnn>0 do begin dd:=nnn mod 10; nnn:=nnn div 10; if cc=pos1 then begin a:=dd; end else if cc=pos2 then begin b:=dd; end; cc:=cc-1; end; while n>0 do begin d:=n mod 10; n:= n div 10; if ccc=pos1 then begin aux:=aux+b*p;
31

p:=p*10; end else if ccc=pos2 then begin aux:=aux+a*p; p:=p*10; end else begin aux:=aux+d*p; p:=p*10; end; ccc:=ccc-1; end; writeln('la posicion ',pos1, ' contiene el digito ',a, ' y la posicion ',pos2, ' contiene el digito ',b,'' ); write('intercambiando queda ',aux); readln; readln; end.

32