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