EXERCICIO PASCAL

19/09/2021

0

Boa noite,
Estou desenvolvendo uma atividade em pascal mas estou com dificuldades para terminar, alguem pode me ajudar ?


Program Pzim ;

var



str : array[0..511] of integer;

begin

writeln('Digite um texto para embaralhar/restaurar (sem espaços): ');
readln(str);

{repetição}
for i := 0; str[i] <> 0; i++
begin
* pular := 1;

{multipla escolha}
case(str[i]) of
begin
'A':
str[i] := 'E';
break;
'E':
str[i] := 'A';
break;
'I':
str[i] := 'O';
break;
'O':
str[i] := 'I';
break;
'U':
str[i] := 'U';
break;
default:
pular := 0;
break;
end;

if(pular) then continue;

{condicional composta}
if(str[i] >= '0' and str[i] <= '9') then
begin
str[i] := '9' - (str[i] - '0');
end;
else if(str[i] >= 'a' and str[i] <= 'z') then
begin
str[i] := 'a' + ((str[i] - 'a' + 13) mod 26);
end;
end;

writeln('Resultado é: ', str);
end;

end.
Rattlehead

Rattlehead

Responder

Post mais votado

20/09/2021

veja se isto te ajuda:
Program Pzim;
var
    str: string;
    i: integer;
begin
    writeln('Digite um texto para embaralhar/restaurar (sem espaços): ');
    readln(str);

    for i := 1 to length(str) do
    begin
        {multipla escolha}
        case(str[i]) of
            'A': str[i] := 'E';
            'E': str[i] := 'A';
            'I': str[i] := 'O';
            'O': str[i] := 'I';
            'U': str[i] := 'U';
        end;
    
        {condicional composta}
        if((str[i] >= '0') and (str[i] <= '9')) then
            str[i] := chr(ord('9') - (ord(str[i]) - ord('0')))
        else
        if((str[i] >= 'a') and (str[i] <= 'z')) then
            str[i] := chr(ord('a') + ((ord(str[i]) - ord('a') + 13) mod 26));

    end;

    writeln('Resultado é: ', str);
end.

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

20/09/2021

Emerson Nascimento

tá...

mas o que você precisa fazer e qual é a dificuldade?

Responder

20/09/2021

Rattlehead

veja se isto te ajuda:
Program Pzim;
var
    str: string;
    i: integer;
begin
    writeln('Digite um texto para embaralhar/restaurar (sem espaços): ');
    readln(str);

    for i := 1 to length(str) do
    begin
        {multipla escolha}
        case(str[i]) of
            'A': str[i] := 'E';
            'E': str[i] := 'A';
            'I': str[i] := 'O';
            'O': str[i] := 'I';
            'U': str[i] := 'U';
        end;
    
        {condicional composta}
        if((str[i] >= '0') and (str[i] <= '9')) then
            str[i] := chr(ord('9') - (ord(str[i]) - ord('0')))
        else
        if((str[i] >= 'a') and (str[i] <= 'z')) then
            str[i] := chr(ord('a') + ((ord(str[i]) - ord('a') + 13) mod 26));

    end;

    writeln('Resultado é: ', str);
end.



Show de bola me deu uma luz imensa, desculpa não ter esclarecido direito...

Consigo colocar um vetor tambem pra controlar ?
No meu exercicio pede para ter multipla escolha, repetição, condicional composta, vetor ou matriz

Tava tentando juntar tudo e me perdi no meio :)

no for posso fazer um vetor por exemplo que nem eu estava tentando ?
Responder

21/09/2021

Emerson Nascimento

pode fazer um for com vetor.
na verdade já está fazendo, porque um tipo string é um vetor de char, tanto que acessa uma letra com str[x].

você só precisará preencher teu vetor, e isto não será possível com readln().


Responder

23/09/2021

Rattlehead

pode fazer um for com vetor.
na verdade já está fazendo, porque um tipo string é um vetor de char, tanto que acessa uma letra com str[x].

você só precisará preencher teu vetor, e isto não será possível com readln().




Qual eu consigo usar ?

Program Pzim;
var
str: array[1..511] of string;
i: integer;

begin
writeln(''Digite um texto para embaralhar/restaurar (sem espaços): '');
readln(str);

for i := 1 to 511 do
begin
{multipla escolha}
case(str[i]) of
''A'': str[i] := ''E'';
''E'': str[i] := ''A'';
''I'': str[i] := ''O'';
''O'': str[i] := ''I'';
''U'': str[i] := ''U'';
end;

{condicional composta}
if((str[i] >= ''0'') and (str[i] <= ''9'')) then
str[i] := chr(ord(''9'') - (ord(str[i]) - ord(''0'')))
else
if((str[i] >= ''a'') and (str[i] <= ''z'')) then
str[i] := chr(ord(''a'') + ((ord(str[i]) - ord(''a'') + 13) mod 26));

end;

writeln(''Resultado é: '', str);
end.
Responder

23/09/2021

Emerson Nascimento

o que exatamente você precisa fazer?
Responder

30/09/2021

Rattlehead

o que exatamente você precisa fazer?


Deu tudo certo no exercicio, estava tão cego em fazer matriz matriz que não tinha visto o que tinha falado antes.

Fiz algumas alterações e show de bola, agradeço!

Program Pzim;
var
str: string; {array[0..10] of char;}
i: integer;
{ a : char; }
begin


writeln(''Digite um texto para embaralhar/restaurar (sem espaços): '');
readln(str);


for i := 1 to 10 do
begin
{multipla escolha}
case(str[i]) of
''A'': str[i] := ''E'';
''E'': str[i] := ''A'';
''I'': str[i] := ''O'';
''O'': str[i] := ''I'';
''U'': str[i] := ''U'';
end;

{condicional composta}
if((str[i] >= ''0'') and (str[i] <= ''9'')) then
str[i] := chr(ord(''9'') - (ord(str[i]) - ord(''0'')))
else
if((str[i] >= ''a'') and (str[i] <= ''z'')) then
str[i] := chr(ord(''a'') + ((ord(str[i]) - ord(''a'') + 13) mod 26));

end;

writeln(''Resultado é: '', str);
end.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar