lÓgica de programaÇÃo linguagem c. estruturas condicionais na linguagem c utilizamos a rotina...

Post on 18-Apr-2015

113 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

LÓGICA DE PROGRAMAÇÃO Linguagem C

Computação Depressão

O Portal do Estudante de Computação

www.facebook.com/ComputacaoDepressaowww.ComputacaoDepressao.com.br

ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais.

if se

else senão

SINTAXE if([condição], [condição], ...) {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

} else {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

}

Essa é a sintaxe generalizada que funciona com qualquer caso de estrutura condicional na linguagem C.

SINTAXE QUANDO NÃO HÁ “ELSE” if([condição], [condição], ...) {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

}

O if() é a estrutura condicional padrão. Então logo após o { inicia-se uma série de rotinas que serão executadas e é finalizado com o }.

SINTAXE QUANDO NÃO HÁ “ELSE” if([condição], [condição], ...)

//rotina_aqui;

Caso exista apenas uma rotina a ser executada nesta estrutura condicional, não há a necessidade do { e }. Entretanto só poderá haver uma única rotina.

SINTAXE QUANDO HÁ “ELSE” if([condição], [condição], ...) {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

} else {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

}

Após o } virá o else e depois do { e }, delimitando todas as rotinas do bloco “senão”.

SINTAXE QUANDO HÁ “ELSE” if([condição], [condição], ...)

//rotina_aqui;

else {

//rotina_aqui;

//rotina_aqui;

//rotina_aqui;

}

Quando há apenas uma rotina no bloco “se” e você não quer utilizar o { e }.

SINTAXE QUANDO HÁ “ELSE” if([condição], [condição], ...)

//rotina_aqui;

else

//rotina_aqui;

E caso você tenha apenas uma rotina, tanto no bloco “se” quanto no bloco “senão”, você não precisa usar o { e } e o { e }. Porém, por uma boa prática de programação, é bom utilizar as chaves.

ENCADEAMENTOS DE ESTRUTURAS CONDICIONAIS if([condição], [condição], ...)

//rotina_aqui;

else

if([condição], [condição], ...) {

//rotina_aqui;

//rotina_aqui;

} else

//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) //idade: int

if(salario >= 1000) //salario: float

if(sexo == ‘M’) //sexo: char

if((40 % 2) == 0) //se o resto da divisão “40/2” for zero

if((22 - 7) != (3 * 5)) //operações matemáticas

if(sexo1 < sexo2) //verificando ordem alfabética em dados char

VALORES LÓGICOS Diferente da linguagem Pascal, que há o valor lógico (tipo de dado booleano), a linguagem C utiliza valores numéricos para os dados lógicos.

Dados lógicos são apenas dois: verdadeiro e falso. A linguagem C definiu que qualquer valor diferente de zero é verdadeiro, e zero é falso. Exemplo:

int vivo = 1;

if(vivo == 1) {

printf(“Você está vivo!”);

}

VALORES LÓGICOS Seja qualquer número real positivo ou negativo diferente de zero, então ele será lido como “verdadeiro”. Nesse caso não precisamos fazer uma verificação completa. Basta inserirmos a variável na condição, e automaticamente estaremos fazendo uma verificação se a condição é verdadeira ou falsa.

if(vivo) {

printf(“Você está vivo!”);

} else {

printf(“Você está morto!”);

}

OPERADORES LÓGICOS Negação: !

E: &&

Ou: || (pipe, símbolo encontrado geralmente à direita do shift esquerdo)

Ou exclusivo: ^

EXEMPLOS DE CONDIÇÕES AGRUPADAS if((idade >= 12) && (idade < 18)) //idade da adolescência

if((curso == ‘C’) || (curso == ‘S’) || (curso == ‘E’)) //TI

if((vivo) ^ (!vivo)) //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 == 1) //int vivo = 1. verificando se ele está vivo

if(vivo) //caso seja uma comparação lógica, não//preciso do “== 1”

if(vivo == 0) //verificando se ele está morto

if(!vivo) //utilizamos o operador lógico “!”

COMPARANDO STRINGS char nome[20] = “Computação”, sobrenome[20] = “Depressão”;

if(nome == sobrenome) {

printf(“Nome e sobrenome iguais”);

} else {

printf(“Nome e sobrenome diferentes”);

}

Esta forma de comparação entre strings não é válida!

COMPARANDO STRINGS Para compararmos strings, usamos uma função chamada strcmp(). Nela é passada dois parâmetros, que são as variáveis e/ou textos literais. O retorno da função é um número inteiro.

Definição da função: strcmp([primeira string], [segunda string]);

Ela irá retornar um valor para cada uma das possibilidades da comparação:

•0: as strings são iguais

•-1: se a 1ª variável vier alfabeticamente primeiro que a 2ª

•1: se a 2ª variável vier alfabeticamente primeiro que a 1ª

COMPARANDO STRINGS char nome[20] = “Computação”, sobrenome[20] = “Depressão”;

if(strcmp(nome, sobrenome) == 0) {

printf(“Nome e sobrenome iguais”);

} else {

printf(“Nome e sobrenome diferentes”);

}

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. switch(variável) { case valor_1: rotina_aqui; break; case valor_2: rotina_aqui; rotina_aqui; rotina_aqui; break; case valor_3: case valor_4: rotina_aqui; break; default: rotina_aqui; break; }

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(s) rotina(s) a ser(em) executada(s) vem depois do dois-pontos. Ao fim da(s) rotina(s), é necessária a instrução “break;”.

Podemos colocar vários valores para os casos dessa forma:

case valor1: case valor2: case valor3: rotina_aqui; break;

Podemos usar o “default” para assumirmos valores que não foram listados nos casos.

ESTRUTURA DE CASO switch(idade) { //int idade

case 10: printf(“Deus”); break;

case 11: printf(“Romário”); break;

case 12: printf(“Whisky”); break;

case 13: printf(“Sexta-feira”); break;

default: printf(“Não faz parte dessa piada”); break;

}

ESTRUTURA DE CASO switch(sigla) { //char sigla case ‘t’: printf(“Técnico”); break; case ‘l’: printf(“Licenciado”); break; case ‘b’: printf(“Bacharel”); break; case ‘e’: printf(“Especialista”); break; case ‘m’: printf(“Mestre”); break; case ‘d’: printf(“Doutor”); break; case ‘p’: printf(“Pós-doutor”); break; default: printf(“Não possui graduação superior”); break; }

top related