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

23
LÓGICA DE PROGRAMAÇÃO Linguagem C Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br

Upload: internet

Post on 18-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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

Page 2: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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

if se

else senão

Page 3: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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.

Page 4: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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 }.

Page 5: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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.

Page 6: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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”.

Page 7: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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 }.

Page 8: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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.

Page 9: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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.

Page 10: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

OPERADORES RELACIONAIS Igual: ==

Diferente: !=

Maior que: >

Menor que: <

Maior ou igual a: >=

Menor ou igual a: <=

Page 11: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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

Page 12: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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!”);

}

Page 13: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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!”);

}

Page 14: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

OPERADORES LÓGICOS Negação: !

E: &&

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

Ou exclusivo: ^

Page 15: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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

Page 16: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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 “!”

Page 17: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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!

Page 18: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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ª

Page 19: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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”);

}

Page 20: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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; }

Page 21: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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.

Page 22: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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;

}

Page 23: LÓGICA DE PROGRAMAÇÃO Linguagem C. ESTRUTURAS CONDICIONAIS Na linguagem C utilizamos a rotina “if-else” para realizarmos nossas operações condicionais

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; }