Ir ao conteúdo

Como escrever esse código C++ em Pascal??


Visitante: Ricardo dos sa

Posts recomendados

Visitante: Ricardo dos sa
 
Postado
include <iostream>
using namespace std;
int main() {
char sexo;
int idade;
int idade_M[20], idade_F[20];
int i, n;
cout << "Equipe Masculina:" << endl;
for (i=0; i<20; i++) {
cout << "Informe a idade do nadador " << i+1 << ": ";
cin >> idade_M[i];
}
cout << "Equipe Feminina:" << endl;
for (i=0; i<20; i++) {
cout << "Informe a idade da nadadora " << i+1 << ": ";
cin >> idade_F[i];
}

n = i = 0;
cout << "Homens maiores de 16 e menores de 18 anos" << endl;
while (n < 5 && i < 20) {
if (idade_M[i] >= 16 && idade_M[i] < 18)
cout << ++n << " nadador " << i+1 << " com " << idade_M[i] << " anos" << endl;
i++;
}
if (n < 5)
cout << "Não existem nadadores suficientes" << endl;

n = i = 0;
cout << "Homens maiores de 18 anos" << endl;
while (n < 5 && i < 20) {
if (idade_M[i] >= 18)
cout << ++n << " nadador " << i+1 << " com " << idade_M[i] << " anos" << endl;
i++;
}
if (n < 5)
cout << "Não existem nadadores suficientes" << endl;

n = i = 0;
cout << "Mulheres maiores de 18 anos" << endl;
while (n < 5 && i < 20) {
if (idade_F[i] >= 18)
cout << ++n << " nadadora " << i+1 << " com " << idade_F[i] << " anos" << endl;
i++;
}
if (n < 5)
cout << "Não existem nadadoras suficientes" << endl;

return 0;
}

Visitante: Ricardo dos sa
 
Postado

Onde foi que eu errei, alguém pode me ajudar?. Coloquei o nome da minha namorada porque ultimamente é quem namoro.

Program Erica ;

var
n, i, idade, : integer;
idade_F : array [0..20] of integer;
sexo : char;

Begin
writeln (' Equipe Masculina : ' , i := 0 );
while ( i<20 ) do
begin
writeln ( ' Informe a Idade do Nadador ', i+1 , ' : ' );
readln ( idade_M[i]);
end;
writeln ( ' Equipe Feminina : ' , i := 0 );
while ( i<20 ) do
begin
writeln ( ' Informe a Idade da Nadadora ' , i+1 , ' : ' );
readln ( idade_F[i] );
end;
n := i := 0;
writeln
( ' Homens Maiores de 16 e Menores d 18 Anos ' );
while ( ( n<5 ) and ( i<20 ) ) do
begin
if ( ( idade_M[i] >=16 ) and ( idade_M[i] <18 ) ) then
writeln ( n ' Nadador ' i+1 , ' com ' , idade_M[i] , ' anos ' );
read ( i );
end;
if ( n<5 ) then
writeln ( ' Não Existe Nadadores Suficientes ' );
n := i := 0
writeln ( ' Homens Maiores de 18 Anos ' );
while ( ( n<5 ) and ( i<20 ) ) do
begin
if ( idade_M[i] >= 18 ) then
writeln ( n ' Nadador ' , i+1 , ' com ' , idade_M[i] , ' anos ' );
read ( i );
end;
if ( n<5 ) then
writeln ( ' Mulheres Maiores de 18 Anos ' );
while ( ( n<5 ) and ( i<20 ) ) do
begin
writeln ( n , ' Nadadora ' , i+1 , ' com ' , idade_F[i] , anos );
end;
if ( n<5 ) then
writeln ( ' Não Existe Nadadoras Suficientes ' );

return0;
End.

Postado

Olá amigo.

Pra te dar uma luz de onde você estava errando, uma pequena lista:

1) Na declaração das variáveis, ficou com uma vírgula sobrando, o que gera erro no delphi, e tambem faltou a declaração da matriz, ou vetor, das idades dos homens:


n, i, idade[B][COLOR="Red"],[/COLOR][/B] : integer;
idade_F : array [0..20] of integer;
[COLOR="Red"]{aqui falta a declaração de "idade_M : array [0..20] of integer;"}[/COLOR]

2) Depois disso, ficou faltando uma pequena compreensão do comando em C++...

Em C++ há o recurso muito interessante de que em uma linha só pode-se executar vários comandos, como o caso de incrementar a variável "n" e em seguida já a apresentar na tela, como ocorre neste comando:


cout << ++n << " nadador " << i+1 << " com " << idade_M[i] << " anos" << endl;

O equivalente Delphi a este comando é:

n:= n + 1;
Writeln(IntToStr(n) + ' nadador ' + IntToStr(i+1) + ' com ' + IntToStr(idade_M[i]) + ' anos');

Percebeu que antes do comando "Writeln" tive que incrementar a variável "n"? É o que o código "++n" faz em C++...

Tambem aqui utilizei a função "IntToStr(n)". Em Delphi se faz necessário converter tipos numéricos para tipos string (cadeia de caracteres) para só então poder mostrar na tela. É isso o que a função "IntToStr(variavel)" faz!

E para juntar todas as palavras (incluindo variaveis numericas convertidas em texto) formando a frase que será apresentada na tela, utiliza-se o sinal de "+".

3) Ao final do programa em C++ utiliza-se o comando "return 0", o que faz com que a função que acabou de ser executada retorne o valor numérico "0" a quem chamou a execução da função...

Em pascal o comando equivalente seria "result:= 0" mas neste caso não é necessário retornar nenhum valor já que a função executada é unica (o programa foi todo feito dentro de uma função só descrita entre "begin" e "end.").

No final, o código fica deste modo (compare com o que você tinha feito antes para verificar a diferença entre os códigos):


var
n, i, idade: integer;
idade_F: array [0..20] of integer;
idade_M: array [0..20] of integer;
sexo : char;

Begin
i:= 0;
Writeln(' Equipe Masculina : ');
for i:= 0 to 20-1 do
begin
Writeln(' Informe a Idade do Nadador ' + IntToStr(i+1) + ': ');
Readln(idade_M[i]);
end;
Writeln(' Equipe Feminina : ');
for i:= 0 to 20-1 do
begin
Writeln(' Informe a Idade da Nadadora ' + IntToStr(i+1) + ': ');
Readln(idade_F[i]);
end;

n:= 0; i:= 0;
Writeln(' Homens Maiores de 16 e Menores de 18 Anos ');
while( ( n<5 ) and ( i<20 ) ) do
begin
if ( ( idade_M[i] >=16 ) and ( idade_M[i] <18 ) ) then
begin
n:= n + 1;
Writeln(IntToStr(n) + ' nadador ' + IntToStr(i+1) + ' com ' + IntToStr(idade_M[i]) + ' anos ' );
end;
i:= i + 1;
end;
if ( n<5 ) then
Writeln( ' Não Existem Nadadores Suficientes ' );

n:= 0; i:= 0;
Writeln( ' Homens Maiores de 18 Anos ' );
while ( ( n<5 ) and ( i<20 ) ) do
begin
if ( idade_M[i] >= 18 ) then
begin
n:= n + 1;
Writeln(IntToStr(n) + ' nadador ' + IntToStr(i+1) + ' com ' + IntToStr(idade_M[i]) + ' anos ' );
end;
i:= i + 1;
end;
if ( n<5 ) then
Writeln( ' Não Existem Nadadores Suficientes ' );

n:= 0; i:= 0;
Writeln ( ' Mulheres Maiores de 18 Anos ' );
while ( ( n<5 ) and ( i<20 ) ) do
begin
if(idade_F[i] >= 18)then
begin
n:= n + 1;
Writeln(IntToStr(n) + ' nadadora ' + IntToStr(i+1) + ' com ' + IntToStr(idade_F[i]) + 'anos');
end;
i:= i + 1;
end;
if ( n<5 ) then
Writeln( ' Não Existem Nadadoras Suficientes ' );

Writeln('Pressione ENTER para sair');
Readln;
End.

Obs.: tomei a liberdade de colocar as linhas...


Writeln('Pressione ENTER para sair');
Readln;

...a fim de que ao encerrar o programa a tela não se feche automaticamente, mas sim aguarde o usuário pressionar a tecla Enter.

Qualquer dúvida pode postar aí que os amigos do fórum sempre tentarão ajudar.

Falou.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!