Título: como pasar estos ejercicios de pascal a c++ Publicado por: hunter22 en 16 Octubre 2013, 03:26 am 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. Título: Re: como pasar estos ejercicios de pascal a c++ Publicado por: noele1995 en 17 Octubre 2013, 12:53 pm Esperas que te lo traduzcamos? esto no va asi...
1- No te vamos a hacer el trabajo, traduce tu lo que puedas y si no sabes pues aprende c++ y ya te ayudaremos con dudas concretas... 2- Subforo equivocado este subforo no es ni de pascal ni de c++ sino de vb6 asique tampoco deberias haber posteado aqui... |