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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar