180 likes | 303 Views
Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br. Lógica de Programação. Pascal. Estruturas condicionais. Na linguagem Pascal utilizamos a rotina “ if-then-else ” para realizarmos nossas operações condicionais.
E N D
Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br Lógica de Programação Pascal
Estruturas condicionais • Na linguagem Pascal utilizamos a rotina “if-then-else” para realizarmos nossas operações condicionais. • if se • then então • else senão
Sintaxe • if([condição], [condição], ...) thenbegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • endelsebegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • end; Essa é a sintaxe generalizada que funciona com qualquer caso de estrutura condicional na linguagem Pascal. Devemos ter muita atenção ao utilizá-la, pois ela é cheia de regras bem confusas!
Sintaxe quando não há “else” • if([condição], [condição], ...) thenbegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • end; O if() thené a estrutura condicional padrão. Então logo após o then, o begin inicia uma série de rotinas que serão executadas e é finalizado com o end e o ponto-e-vírgula.
Sintaxe quando não há “else” • if([condição], [condição], ...) then • //rotina_aqui; Caso exista apenas uma rotina a ser executada nesta estrutura condicional, não há a necessidade do begin e end. Entretanto só poderá haver uma única rotina.
Sintaxe quando há “else” • if([condição], [condição], ...) thenbegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • endelsebegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • end; Após o endnão pode ter um ponto-e-vírgula! Ele tem que ser seguido do else e depois do begin e end, delimitando todas as rotinas do bloco “senão”.
Sintaxe quando há “else” • if([condição], [condição], ...) then • //rotina_aqui • elsebegin • //rotina_aqui; • //rotina_aqui; • //rotina_aqui; • end; Quando há apenas uma rotina no bloco “se” e você não quer utilizar o begin e end, então essa única rotina não pode ter ponto-e-vírgula! Assim como explicado no exemplo anterior.
Sintaxe quando há “else” • if([condição], [condição], ...) then • //rotina_aqui • else • //rotina_aqui; Caso você tenha apenas uma rotina, tanto no bloco “se” quanto no bloco “senão”, você não precisa usar o begin e end e o begin e end.
encadeamentos de estruturas condicionais • if([condição], [condição], ...) then • //rotina_aqui • else • if([condição], [condição], ...) thenbegin • //rotina_aqui; • //rotina_aqui; • endelse • //rotina_aqui; Podemos iniciar outras estruturas condicionais dentro de blocos “se” e “senão” de estruturas condicionais.
Operadores relacionais • Igual: = • Diferente: <> • Maior que: > • Menor que: < • Maior ou igual a: >= • Menor ou igual a: <=
exemplos de condições • if(idade = 30) then //idade: int • if(salario >= 1000) then //salario: real • if(nome <> ‘Computação’) then //nome: string • if(sexo = ‘M’) then //sexo: char • if(vivo =true) then//vivo: boolean • if(vivo) then //caso seja boolean, não preciso do “= true” • if((40 mod 2) = 0) then//se o resto da divisão “40/2” for zero • if((22 - 7) <> (3 * 5)) then //operações matemáticas • if(nome1 < nome2) then //verificando ordem alfabética
Operadores lógicos • Negação: not • E: and • Ou: or • Ou exclusivo: xor
exemplos de condições agrupadas • if((idade >= 12) and (idade < 18)) then //idade da adolescência • if((curso = ‘CC’) or (curso =‘SI’) or (curso =‘EC’)) then //TI • if((vivo) xor (not vivo)) then //pessoa normal
exemplos de condições negadas • Podemos fazer com que o programa prossiga no “se-então” se a condição for falsa, em vez de verdadeira, que é o que temos mais visto. • if(vivo =true) then//vivo: boolean. verificando se ele está vivo • if(vivo) then //caso seja boolean, não preciso do “= true” • if(vivo = false) then //verificando se ele está morto • if(notvivo) then //utilizamos o operador lógico “not”
estrutura de caso • Não usamos condições, mas sim colocamos uma variável em evidência e trabalhamos em cima das possibilidades de valores dela. • case(variável)of • valor_1:rotina_aqui; • valor_2:begin • rotina_aqui; • rotina_aqui; • rotina_aqui; • end; • valor_3 or valor_4:rotina_aqui; • else/otherwiserotina_aqui; • end;
detalhes na estrutura de caso • Cada possibilidade deve se composta de um valor dentro da faixa de valores possíveis do tipo da variável em evidência, seguido de um dois-pontos. A rotina a ser executada vem depois do dois-pontos. Caso haja mais de uma rotina a ser executada, delimitamos com “begin” e “end”. • Podemos colocar valores para os casos separados por “or” • Podemos usar tanto o “else” quando “otherwise” para assumirmos valores que não foram listados nos casos. Após o “else” ou “otherwise” não colocamos o dois-pontos.
estrutura de caso • case(idade) of //idade: integer • 10:writeln(‘Deus’); • 11:writeln(‘Romário’); • 12:writeln(‘Whisky’); • 13:writeln(‘Sexta-feira’); • otherwisewriteln(‘Não faz parte dessa piada’); • end;
estrutura de caso • case(nome)of //nome: string • ‘Maria’ or ‘Ana’:writeln(‘Nome bastante comum’); • ‘Júlia’:writeln(‘Nome comum’); • ‘Geórgia’:writeln(‘Nome incomum’); • ‘Maryscreuzalina’:begin • writeln(‘Nome raríssimo! :O’); • writeln(‘É sério que seu nome é esse?’); • end; • elsewriteln(‘Seu nome não pôde ser analisado’); • end;