Вы находитесь на странице: 1из 4

CEFET/Uned Nova Iguau, 18 de outubro de 2011 A declarao do comando Switch

O comando if em todas suas formas, suficiente resolver problemas de seleo de comandos. Porm em alguns casos, o programa se torna mais trabalhoso para ser escrito. O comando switch facilita a escrita de trechos de programa em que a seleo deve ser feita entre vrias alternativas. A forma geral do comando switch a seguinte:
switch (expresso) { case constante1: sequncia de break; case constante2: sequncia de break; case constante3: sequncia de break; ... default: sequncia de }

comandos; comandos; comandos;

comandos;

A execuo do comando segue os seguintes passos: 1. A expresso avaliada; 2. O resultado da expresso comparado com os valores das constantes que aparecem nos comandos case; 3. Quando o resultado da expresso for igual a uma das constantes, a execuo se inicia a partir do comando associado com esta constante. A execuo continua com a execuo de todos os comandos at o fim do comando switch, ou at que um comando break seja encontrado; 4. Caso no ocorra nenhuma coincidncia o comando default executado. O comando default opcional e se ele no aparecer nenhum comando ser executado. O comando break um dos comandos de desvio da linguagem C. O break se usa dentro do comando switch para interromper a execuo e pular para o comando seguinte ao comando switch.

H alguns pontos importantes que devem ser mencionados sobre o comando switch.

O resultado da expresso deve ser um tipo compatvel com um inteiro, isto , expresses com resultados tipo char tambm podem ser usadas;

Notar que caso no apareca um comando de desvio todas as instrues seguintes ao teste case que teve sucesso sero executadas, mesmo as que estejam relacionadas com outros testes case; O comando switch s pode testar igualdade; No podem aparecer duas constantes iguais em um case;

Para utilizar switch, devemos escolher alguma varivel cujo valor determine que ao ser executada, em nosso caso, essa varivel operador. A declarao switch compara o valor em operador com cada uma das opes possveis: +, -, *,e /. Exemplo #include <stdio.h> #include <stdlib.h>

int main () { char operador; float operador1, operador2, resultado; printf("Por favor digite a expresso a ser calculada :"); scanf("%f %c %f", &operador1, &operador, &operador2);

switch(operador){ case '+': resultado=operador1+operador2; break; case '-': resultado=operador1-operador2; break; case '*': resultado=operador1*operador2; break; case '/':

resultado=operador1/operador2; break; default: printf ("desculpe, nao compreendo %c \n", operador); continue; } printf ("Obrigado. o resultado e %2.5f \n", resultado); system("pause"); return(0); }

Exerccios 1) Ler um nmero e verificar se o nmero correspondente a um ms valido no calendrio e apresentar o nome do ms. Sendo o ms invalido informar ao usurio.
2) Utilizando a estrutura anterior faa com os dias da semana.

Matrizes de strings
Matrizes de strings so matrizes bidimensionais. Imagine uma string. Ela um vetor. Se fizermos um vetor de strings estaremos fazendo uma lista de vetores. Esta estrutura uma matriz bidimensional de chars. Podemos ver a forma geral de uma matriz de strings como sendo: char nome_da_varivel [num_de_strings][compr_das_strings]; exemplo de um programa que l 5 strings e as exibe na tela: Obs: char strings [5][100] - [5] representa os cinco nomes e [100] o espao para os caracteres que formaro os nomes.
#include <stdio.h> #include <stdlib.h> int main () { char strings [5][100]; int count; for (count=0;count<5;count++) { printf ("\n\nDigite uma string: "); gets (strings[count]);

} printf ("\n\n\nAs strings que voce digitou foram:\n\n"); for (count=0;count<5;count++) printf ("%s\n",strings[count]); system("pause"); return(0); }

Ordenao de String 1 - Agora que voc aprendeu a usar uma matriz de string em C, faa uma alterao no programa anterior com o objetivo de os nomes a serem apresentados sejam em ordem alfabtica.

Pesquisa sequencial
Para procurar um valor especfico numa matriz voc pode usar a pesquisa sequencial. A pesquisa sequencial inicia no primeiro elemento da matriz e vai at o ltimo procurando o valor desejado. Observe abaixo o cdigo de uma pesquisa sequencial numa matriz: 2 - Agora faa a pesquisa sequencial no exerccio anterior Obs: usar a funo fflush() caracteriza-se por ser um comando de limpeza de buffer (stream), em que stdin(standard input) o stream a ser limpo, ou seja, o stream de entrada padro, no caso representado pelo teclado. usado para fazer limpeza para no ocorrer erro. Exercicios 1) Informar 3 nomes. Mostrar quantas letras "A" e "E" possuem. 2)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos. Calcular a mdia de cada aluno e imprimir aprovado se a mdia for maior que 5 e reprovado se mdia for menor ou igual a 5. OBS.: 2 vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor para a mdia. 1 vetor para situao. 3)Armazenar em Vetores, Nomes e Notas PR1 e PR2 de 6 alunos. Calcular a mdia de cada aluno e imprimir aprovado se a mida for maior que 5 e reprovado se mdia for menor ou igual a 5. OBS.: 2 vetores para as notas tipo float. 1 vetor para os nomes. 1 vetor para a mdia. 1 vetor para situao.

Вам также может понравиться