[ Foro de Pascal ]

Necesito pasar este codigo de C++ a Pascal

21-Jun-2020 11:37
Invitado (Renato Suarez)
1 Respuestas

Buenas, yo programo nivel intermedio en c++ y este año he llevado pascal y me cuesta un poco adaptarme porque no entiendo ciertos cambios, y he hecho este ejercicio en c++ que necesito trasladarlo en Pascal, alguien podría hacerlo por favor? quiero estudiar el código también porque no me sale, gracias de antemano, dejo el código:

#include <iostream>
using namespace std;
int main(){
   int anchura;
   cout<<"Ingresar el ancho del rectangulo (como minimo 2): ";
   cin>>anchura;

   int altura;
   cout<<"Ingresar la altura del rectangulo (como minimo 2): ";
   cin>>altura;

   if((anchura < 2) || (altura < 2)){
       cout<<"Error, datos incorrectos"<<endl;
   } else {
       for(int i = 1; i <= anchura; i++){
           cout<<"*";
       }
       for(int i = 2; i < altura; i++){
           cout<<"\n*";
           for(int espacios = 2; espacios < anchura; espacios++){
               cout<<" ";
           }
           cout<<"*";
       }
       cout<<""<<endl;
       for(int i = 1; i <= anchura; i++){
           cout<<"*";
       }
   }
}



la sentencia es:     Realiza un programa que pinte por pantalla un rectángulo hueco hecho con asteriscos. Se debe pedir al usuario la anchura y la altura. Hay que comprobar que tanto la anchura como la altura sean mayores o iguales que 2, en caso contrario se debe mostrar un mensaje de error.


22-Jun-2020 21:34
Luis Torres (+18)

Deberías colocar lo que lleves de código en Pascal hecho, pero, no importa, aquí te lo dejo, decidí agregarle un espacio en blanco después de cada asterisco para que realmente luciera como un rectángulo en la pantalla. Acá te dejo el programa:


program Rectangulo;

uses CRT;

var
 anchura, altura, i, j: integer;

BEGIN
 Write('Ingresar el ancho del rectangulo (como minimo 2): ');
 Readln(anchura);

 Write('Ingresar el la altura del rectangulo (como minimo 2): ');
 Readln(altura);

 If (anchura<2) or (altura<2) Then
  Writeln('Error, datos incorrectos')

 Else
  Begin

    ClrScr;
    For i:= 1 to anchura Do
      Write('* '); (* Imprime asterisco y espacio en blanco *)
    Writeln;

    For i:= 2 to (altura-1) Do
     Begin
       Write('* ');
       For j:= 2 to (anchura-1) Do
         Write('  '); (* Imprime dos espacios en blanco *)
       Writeln('*');
     End;

    For i:=1 to anchura Do
      Write('* ');
    Writeln;

  End;

 Readln;
END.



Espero haberte ayudado.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)