Anda di halaman 1dari 2

ALGORITMOS E LGICA DE PROGRAMAO AULA 11 Corrigir/Rever o ltimo Exemplo/Exerccio da aula anterior

CONCEITOS STRING e Formatao Uma sequncia de caracteres chamada de STRING. Quando se declara uma varivel do tipo char na Linguagem C, possvel utilizar a varivel para: (i) armazenar apenas um nico caractere; (ii) armazenar mais de um caractere, ou seja, uma string. Desse modo, necessrio pr-determinar um tamanho previsto para a varivel, reservando assim, um espao na memria para ela. Exemplos: char OP char NOME[30] Declarao da varivel OP que armazenar um nico caractere a Opo: (1, A, S, +, etc.) Declarao da varivel NOME que armazenar uma string de at 30 caracteres

REPETIO: REPITA / AT QUE


SINTAXE: REPITA ...instrues...

Teste lgico FINAL DO LOOPING

AT QUE <condio verdadeira>

(a) O teste de verificao executado no final do looping/lao; (b) Instrues depois do REPITA e antes AT QUE so executadas at que condio verdadeira; (c) Portanto, as instrues so executadas enquanto a resposta do teste for FALSA; (d) Todas as instrues contidas no lao sero executadas pelo menos uma vez, pois elas aparecem antes do teste de verificao. EXEMPLO - Receber valor - Calcular o quadrado dele - Mostrar o resultado - Repetir esse processo 5 vezes ANLISE DO PROBLEMA 1. 2. 3. 4. 5. 6. Criar a varivel CONTADOR; Ler um valor para a varivel X; Calcular o quadrado do valor X e armazenar o resultado R; Apresentar o resultado de R; Incrementar o CONTADOR; Repetir os passos 2, 3, 4 e 5 at que o CONTADOR seja maior que 5.

Nesses casos, utiliza-se a formatao corresponde conforme descrito a seguir: char OP char NOME[30] %c %s (caractere nico) (string = cadeia ou sequncia de caracteres)

Funo gets( ) Digitao de strings na Linguagem C Para se ler valores para variveis do tipo string utiliza-se a funo gets( ) que l caracteres, nmeros e espaos em branco at que a tecla ENTER seja pressionada.

OBSERVAO: preciso ter cuidado para no reiniciar o contador. Deixe-o fora do lao. FLUXOGRAMA PORTUGUS ESTRUTURADO

EXEMPLO
main () { char nome[30], endereco[20]; printf("Digite seu Nome Completo: "); gets(nome); printf("Digite seu Endereco: "); gets(endereco); printf("Saudacoes, %s \nVoce mora no Endereco: %s \n\n", nome, endereco); system ("pause"); } NOTA: No possvel utilizar a funo scanf ("%s", &nome) para digitao de cadeias de caracteres com espaamento em branco, pois qualquer espao entre as palavras (Nome e Sobrenome) digitado pelo usurio sinalizar para a funo scanf( ) que a entrada de dados terminou. Assim, ser armazenada na varivel somente a primeira parte digitada antes do espao, ou seja, apenas o Nome sem o Sobrenome.

PROGRAMA LOPPING_2 VAR X, R, CONT : INTEIRO; INICIO CONT 1; REPITA LEIA (X); R X*X; ESCREVA ( QUADRADO :, R ); CONT CONT +1; AT QUE (CONT > 5 ); FIM
OBS: Note o ponto e vrgula no final da linha do AT QUE...

LINGUAGEM C

main() EXEMPLO DE USO NA LINGUAGEM DELPHI: { REPEAT... UNTIL (idem Lgica Pseudocdigo) int x, r, cont; EXEMPLO DE USO NA LINGUAGEM VB: cont = 1; DO... LOOP UNTIL (idem Lgica Pseudocdigo) do { // Observe sequncia {entre chaves} printf ("Digite um nmero para saber o quadrado dele: "); LINGUAGEM C: Assim como no comando WHILE, scanf("%d",&x); a repetio continua Enquanto a r = x * x; condio for Verdadeira. printf ("O quadrado e: %d \n", r); DO ... WHILE <condio> cont = cont+1; } while (cont <= 5); // Observe aqui o uso do ponto e vrgula system ("pause"); }
EXERCCIOS: Pseudocdigo e Fluxograma: REPITA... AT QUE... // Linguagem C: DO... WHILE (1) Apresente apenas os nmeros pares de 10 a 20 (ordem crescente) (2) Apresente apenas os nmeros mpares de 30 a 50 (ordem decrescente) (3) Apresente apenas os mltiplos de 3 dos nmeros de 0 a 50 (4) Ler valores para A, B e C / Calcular e Apresentar a Mdia entre eles / Executar esse processo 5x (5) Apresentar os quadrados de todos os nmeros inteiros de 15 a 31 15 = 225 ... 31 = 961

PSEUDOCDIGO (REPITA AT QUE): A repetio continua enquanto a condio for Falsa.

EXEMPLO 1 Continuar o Processo main() { int n1,n2,soma,resposta; do{ system ("cls"); printf("Digite Primeiro Valor: "); scanf("%d",&n1); printf("Digite Segundo Valor: "); scanf("%d",&n2); soma=n1+n2; printf("Soma: %d\n",soma); printf("Deseja continuar? (1 - SIM / 2 NO)\n"); scanf("%d",&resposta); } while(resposta==1); system ("pause"); }

EXEMPLO 2 Definir se n par ou mpar main() { int n; do { printf("Digite um numero para saber se e Par ou Impar ou 0 (zero) para sair: "); scanf("%d", &n); if( n%2 == 0 ) printf("%d e Par\n", n); else printf("%d e Impar\n", n); } while( n != 0 ); system("pause"); }

Anda mungkin juga menyukai