EXERCICIO PASCAL

Programação

19/09/2021

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

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

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.

GOSTEI 1

Mais Respostas

Emerson Nascimento

Emerson Nascimento

19/09/2021

tá...

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

GOSTEI 0
Rattlehead

Rattlehead

19/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.



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 ?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/09/2021

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().


GOSTEI 1
Rattlehead

Rattlehead

19/09/2021

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.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/09/2021

o que exatamente você precisa fazer?
GOSTEI 0
Rattlehead

Rattlehead

19/09/2021

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.
GOSTEI 0
POSTAR