BUENAS NOCHES, ESPERO ALGUIEN ME AYUDE A TRADUCIR ESTOS EJERCICIOS DE PASCAL PARA C++ ES URGENTE Y DEBIDO A QUE NO SE MUCHO DE C++ PUES NO HE PODIDO REALIZARLOS, AQUI ESTAN LOS CODIGOS.
program EDIF;
uses wincrt;
const
N=4;
M=3;
MAXHAB=5;
type
A=array[1..N,1..M] of integer;
var
X:A;
I,J,K,Y,CONT,MH,Z:integer;
OPC,S:char;
begin
for I:=1 to N do
for J:=1 to M do
repeat
clrscr;
writeln ('BIENVENIDO A LA MATRIZ DEL EDIFICIO');
writeln(' ');
write('Piso ',I,' Apart ',chr(J+64),': ');
readln(X[I,J]);
if (X[I,J]<=0) or (X[I,J]>MAXHAB) then
begin
writeln('Numero de residentes no permitida.');
writeln('El numero de residentes debe ser mayor a 0 y menor q ',MAXHAB)
end
until (X[I,J]>=0) and (X[I,J]<=MAXHAB);
repeat
writeln;
write('apart ');
for I:=1 to M do
write(' ',chr(I+64),' ');
writeln;
write(' ');
for K:=1 to M do
write('------');
writeln;
for I:=1 to N do
begin
if N-I=0 then
write('PB ')
else
write('Piso ',(N-I),' ');
for J:=1 to M do
begin
write('| ',X[N+1-I,J]:2,' ');
end;
writeln('|');
write(' ');
for K:=1 to M do
write('------');
writeln;
end;
for I:=1 to N do
for J:=1 to M do
if X[I,J]>=MH then
begin
MH:=X[I,J];
Z:=J;
Y:=I;
end;
writeln('el apartamento con mas residentes es:',MH);
writeln('y esta en el:',Y,'-',chr(Z+64));
for I:=1 to N do
for J:=1 to M do
if (X[I,J]<=MH)and (X[I,J]>0) then
begin
MH:=X[I,J];
Z:=J;
Y:=I;
end;
writeln('apartamento con menos residentes: ',MH);
writeln('y esta en el: ',Y,' - ',chr(Z+64));
CONT:=0;
for I:=1 to N do
for J:=1 to M do
if X[I,J]=0 then
begin
CONT:=CONT+1;
end;
writeln('apartamentos vacios :',CONT);
writeln('desea modificar algun apartamento? S/N');
readln(OPC);
writeln('----ENRIQUE RODRIGUEZ C.I: 23497243----');
writeln('||INFORMATICA III VESPERTINO, IUTCM||');
if (OPC='S')or (OPC='s')then
begin
repeat
writeln('ingrese el piso:');
readln(I);
if (I<=0) or (I>N) then
writeln('numero de piso no valido')
until (I>=0) and (I<=N);
repeat
writeln('ingrese el apartamento:');
readln(S);
if (S>='A') and (S<='Z') then
J:=ord(S)-64
else
if (S>='a') and (S<='z') then
J:=ord(S)-96;
if J>M then
writeln('numero de apartamento no valido')
until (J<>0) and (J<=M);
repeat
writeln('ingrese el numero de residentes');
readln(X[I,J]);
if (X[I,J]< 0) or (X[I,J]>10)then
writeln('numero de habitantes no valido');
until (X[I,J]>=0) and (X[I,J]<=10);
end;
until(OPC='n')or(OPC='N');
end.
___________________________________________________________________
program EDITORTEXTO;
uses wincrt;
const
N=10;
type
CAD=string[70];
L=array[1..N] of CAD;
var
TEXTON:CAD;
TEXTO:L;
CADENA,palabra1,palabra2,CADB,CADINS,PAL,PAL1,PALINS,PALINS1:CAD;
I,A,X,LINSERT,CB,IP,C,J:integer;
opcion2,opcion:char;
begin
writeln('BIENVENIDO AL EDITOR DE TEXTO');
writeln(' ');
writeln ('insertar texto');
for A:=1 to N do
readln (TEXTO[A]);
writeln;
repeat
writeln ('elija una opcion');
writeln;
writeln ('1.- MODIFICAR TEXTO');
writeln ('2.- CAMBIAR SUBCADENA O PALABRA');
writeln ('3.- ELIMINAR');
writeln ('4.- INSERTAR');
writeln ('5.- SALIR');
writeln (' ');
writeln ('----ENRIQUE RODRIGUEZ C.I: 23497243----');
writeln ('||INFORMATICA III VESPERTINO, IUTCM-MERIDA||');
writeln;
readln (opcion);
case opcion of
'1':
begin
for A:=1 to N do
begin
for A:=1 to N do
begin
IP:=1;
while (IP<length(TEXTO[A])) do
begin
IP:=IP+1;
if ((TEXTO[A][IP]=' ') and (TEXTO[A][IP+1]=' ')) then
begin
delete (TEXTO[A],IP,1);
IP:=IP-1;
end;
end;
end;
I:=1;
for A:=1 to N do
for X:=1 to 2 do
begin
if ((TEXTO[A][1]=' ') or (TEXTO[A][1]='.')) then
delete(TEXTO[A],1,1);
if (TEXTO[A][length(TEXTO[A])]=' ') then
delete(TEXTO[A],length(TEXTO[A]),1);
for I:=1 to length(TEXTO[A]) do
begin
if ((TEXTO[A]='.') and (TEXTO[A][I-1]=' ')) then
delete(TEXTO[A],(I-1),1);
if ((TEXTO[A]='.') and ((TEXTO[A][I+1]>='a') or (TEXTO[A][I+1]<='z'))) then
insert(' ',TEXTO[A],(I+1));
end;
begin
for I:=1 to length(TEXTO[A]) do
if ((TEXTO[A]>='A') and (TEXTO[A]<='Z')) or (TEXTO[A]='Ñ') then
TEXTO[A]:= chr(ord(TEXTO[A])+32);
end;
begin
for I:=1 to length(TEXTO[A]) do
if ((TEXTO[A]='.') and (TEXTO[A][I+1]=' ') and ((TEXTO[A][I+2]>='a') or (TEXTO[A][I+2]<='z'))) then
begin
I:=I+2;
TEXTO[A]:=chr(ord(TEXTO[A])-32);
end;
end;
for I:= 1 to length(TEXTO[A]) do
if ((TEXTO[A][1] >='a') and (TEXTO[A][1] <='z')) or (TEXTO[A][1]='ñ') then
begin
TEXTO[A][1]:= chr(ord(TEXTO[A][1])-32);
end;
{ while (IP<length(TEXTO[A])) do
begin
I:=I+1;
if ((TEXTO[A]='.') and (TEXTO[A][I+1]=' ') and((TEXTO[A]>='a') or (TEXTO[A]<='z'))) then
begin
I:=I+2;
if ((TEXTO[A]>='a') or (TEXTO[A]<='z')) then
TEXTO[A]:=chr(ord(TEXTO[A])-32); } {esta es la funcion de colcoar la letra despues del punto en mayuscula}
end;
end;
for A:=1 to N do
begin
writeln(TEXTO[A]);
writeln;
end;
writeln ('pulse una tecla para continuar');
readkey;
end;
'2':
begin
writeln ('INSERTE SUD-CADENA O PALABRA A CAMBIAR: ');
writeln;
begin
writeln('Cadena a cambiar del texto:');
readln(CADB);
writeln ('cadena a insertar');
readln (CADINS);
I:=0;
for A:=1 to N do
begin
while (pos(CADB,TEXTO[A])<>0) do
begin
I:=I+1;
insert(CADINS,TEXTO[A],pos(CADB,TEXTO[A]));
delete(TEXTO[A],pos(CADB,TEXTO[A]),(length(CADB)));
end;
writeln(TEXTO[A]);
end;
writeln;
writeln ('pulse una tecla para continuar');
readkey;
end;
end;
'3':
begin
writeln ('Que desea hacer?');
writeln;
writeln ('A) ELIMINAR TEXTO');
writeln ('B) ELIMINIAR SUB-CADENA O PALABRA');
writeln;
readln (opcion2);
if ((opcion2='A') or (opcion2='a')) then
begin
for A:=1 to N do
delete(TEXTO[A],pos(TEXTO[A],TEXTO[A]),(length(TEXTO[A]))+1);
end;
if ((opcion2='B') or (opcion2='b')) then
begin
writeln('ingrese Cadena o Palabra a borrar:');
readln(CADB);
I:=0;
for A:=1 to N do
while (pos(CADB,TEXTO[A])<>0) do
begin
I:=I+1;
delete(TEXTO[A],pos(CADB,TEXTO[A]),(length(CADB)));
end;
writeln(TEXTO[A]);
end;
writeln;
writeln ('pulse una tecla para continuar');
readkey;
if ((opcion2<>'A') or (opcion2<>'a') or (opcion2<>'B')or (opcion2<>'b') or (opcion2<>'C') or (opcion2<>'c' )) then
writeln ('opcion no valida');
writeln ('pulse una tecla para continuar');
readkey;
end;
'4':
begin
for A:=1 to N do
begin
writeln('ingrese una opcion');
writeln;
writeln('A) INSERTAR LINEA');
writeln('B) INSERTAR SUBCADENA O PALABRA');
writeln;
readln(opcion2);
if (opcion2 ='A') or (opcion2 = 'a') then
begin
writeln;
for A:=1 to N do
begin
if (length(TEXTO[A])=0) then
begin
writeln('INSERTE LINEA ',A);
writeln('');
readln(TEXTON);
insert(TEXTON,TEXTO[A],length(TEXTO[A]));
end;
if (length(TEXTO[A])>0) then
writeln('NO HAY ESPACIO DISPONIBLES EN LA LINEA ',A);
writeln;
end;
writeln;
writeln ('pulse una tecla para continuar');
readkey
end;
if (opcion2 ='B') or (opcion2 = 'b') then
begin
writeln('EN CUAL LINEA DESEA INSERTAR (1 - 10)');
writeln;
readln(LINSERT);
if (length(TEXTO[LINSERT])<55) then
begin
writeln('INSERTE PALABRA O SUB-CADENA ');
writeln;
insert(' ',TEXTO[LINSERT],length(TEXTO[LINSERT]));
readln(TEXTON);
insert(TEXTON,TEXTO[LINSERT],length(TEXTO[LINSERT]));
end
else
writeln('no hay espacio disponible en esta linea, por favor inserte otra');
X:=1;
if (opcion2<>'A') or (opcion2<>'a') or (opcion2<>'B') or (opcion2<>'b') or (opcion2<>'C') or (opcion2<>'c') then
begin
end;
end;
end;
writeln;
writeln ('pulse una tecla para continuar');
readkey
end;
end;
until (opcion='5');
end.