Linguagem de Programação C

Linguagem de Programação C

(Parte 6 de 7)

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação int conta = 0; while(conta < 10) { printf("conta=%d\n", conta); conta++; }

laço forCaso o número de iterações dependa das instruções executadas, então se recomenda o uso
do laço whileOs laços while podem ser aninhados como o laço for. C permite que no interior do

Quando se conhece a priori o número de loops que o laço deve fazer, recomenda-se o uso do corpo de um laço while, você possa utilizar um outro laço while.

O laço Do-While cria um ciclo repetido até que a expressão de teste seja falsa (zero)Este
laço é bastante similar ao laço whileA diferença é que no laço do-while o teste de condição é
avaliado depois do laço ser executadoAssim, o laço do-while é sempre executado pelo menos uma
vezSintaxe:

5.3 O Laço Do-While do { instrução; } while(expressão de teste);

do laçop do-while, elas são geralmente usadas para aumentar a legibilidadeExemplo usando os

Embora as chaves não sejam necessárias quando apenas uma instrução está presente no corpo laços while e do-while:

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

#include <stdio.h> #include <conio.h>

#include <stdlib.h>/* requerida para rand() */

void main() { char ch, c; int tentativas; do { ch = rand()%26 + 'a'; tentativas = 1; printf("\nDigite uma letra de 'a' a 'z':\n"); while((c=getch())!= ch) { printf("%c e incorreto. Tente novamente. \n\n",c); tentativas++; } printf("\n%c e´ correto",c); printf("\nvoce acertou em %d tentativas", tentativas); printf("\nQuer jogar novamente? (s\\n): "); }while(getche()=='s');

O comando break pode ser usado no corpo de qualquer estrutura do laço CCausa a saída
imediata do laço e o controle passa para o próximo estágio do programaSe o comando break
esteJá o comando continue força a próxima interação do laço e pula o código que estiver abaixo.

5.4 Break e Continue estiver em estruturas de laços aninhados, afetará somente o laço que o contém e os laços internos a Nos while e do-while um comando continue faz com que o controle do programa vá diretamente para o teste condicional e depois continue o processo do laço. No caso do laço for, o computador

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação primeiro executa o incremento do laço e, depois, o teste condicional, e finalmente faz com que o laço continue.

5.5 Goto

como parâmetroEste comando é desnecessário e desaconselhado. Foi implementado somente
para manter a compatibilidade com outros compiladoresA instrução goto tem duas partes: a
palavra goto e um nomeO nome segue as conveções de nomes de variáveis C. Por exemplo:

O comando goto faz com que o programa pule para a instrução logo após o label passado goto parte1;

Para que esta instrução opere, deve haver um rótulo (label) em outra parte do programaUm

rótulo é um nome seguindo por dois pontos.

parte1: printf(“Análise dos Resultados.\n”);

com o nome indicadoOs dois pontos são usados para separar o nome da instrução.

A instrução goto causa o desvio do controle do programa para a instrução seguinte ao rótulo

5.1 Escreva um programa que imprima os caracteres da tabela ASCII de códigos de 0 a 255
O programa deve imprimir cada caractere, seu código decimal e hexadecimalMonte uma tabela

5.6 Exercícios usando os parâmetros de formatação de printf().

5.2 Escreva um programa, utilizando um laço while, que leia caracteres do teclado

Enquanto o usuário não pressionar a tecla ESC de código 27, os caracteres lidos não são ecoados no

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

vídeoSe o caractere lido for uma letra minúscula, o programa a imprime em maiúsculo e, se for

43 qualquer outro caractere, ele mesmo é impresso.

inteiro com os dígitos em ordem inversaPor exemplo, o número 3567 deve ser escrito 7653.

5.3 Elabore um programa que solicite um número inteiro ao usuário e crie um novo número

5.4 Escreva um programa que desenhe uma moldura na tela do micro, desenhando um sol com as tuas iniciais no meio da tela e escrevendo “Feliz Natal” e o seu nome embaixo.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

6 Comandos para Tomada de Decisão

seguirOs comandos de decisão permitem determinar qual é a ação a ser tomada com base no
resultado de uma expressão condicionalIsto significa que podemos selecionar entre ações
C oferece 3 principais estruturas de decisão: if, if-else, switchEstas estruturas são o tema

Uma das tarefas fundamentais de qualquer programa é decidir o que deve ser executado a alternativas dependendo de critérios desenvolvidos no decorrer da execução do programa. deste capítulo.

6.1 If

programa irá executar uma instrução ou um conjunto delasEste é um dos comandos básicos para
qualquer linguagem de programaçãoSintaxe:

O comando if é usado para testar uma condição e caso esta condição seja verdadeira, o if(expressão de teste) instrução;

zero, a condição será verdadeiraComo os laços, o comando if pode ser usado para uma única
instrução ou para um conjunto delasCaso se utilize para um conjunto de instruções, este conjunto
Um comando if pode estar dentro de outro comando ifDizemos então que o if interno está
aninhadoO programa abaixo mostra exemplos do uso e da sintaxe dos comandos if. O primeiro if

Como C não possui variáveis booleanas, o teste sobre a condição opera como os operadores condicionais, ou seja, se o valor for igual a zero (0) a condição será falsa e se o valor for diferente de deve ser delimitado por chaves { e }. mostra a forma aninhada do comando if, o segundo apresenta a sintaxe básica e o último um exemplo onde o comando if executa um bloco de instruções.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

#include <stdio.h> #include <conio.h> void main() { char ch; printf("Digite uma letra de 'a' a 'z':"); ch = getche(); if(ch >= 'a') /* Dois comandos if aninhados */ if(ch <= 'z') printf("\n Voce digitou um caractere valido!"); if(ch == 'p') /* Forma basica de um comando if */ printf("\nVoce pressionou a tecla 'p'!"); if(ch != 'p') /*if executando um bloco de instrucoes*/ { printf("\nVoce nao digitou a tecla 'p'!”); printf(“\n Digite um caractere para finalizar."); ch = getche(); }

6.2 If-Else

se a expressão de teste for verdadeiraNão fará nada se a expressão de teste for falsa. O comando
expressão de teste do comando if for falsaO if-else também permite o aninhamento de outros
comandos if, ou if-else dentro do bloco de instruções do após o elseSintaxe:

No exemplo anterior o comando if executará uma única instrução ou um grupo de instruções, else, quando associado ao if, executará uma instrução ou um grupo de instruções entre chaves, se a if(expressão de teste) instrução_1; else instrução_2;

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

Exemplo:

for(y=1; y<24; y++)/* passo de descida */
printf("\n");/* Nova Linha */

#include <stdio.h> void main() { int x, y; { for(x=1; x<24; x++) /* passo de largura */ if(x==y || x==24-y) /* diagonal? */ printf("\xDB"); /* cor escura */ else printf("\xB0"); /* cor clara */ }

O comando switch permite selecionar uma entre várias ações alternativasEmbora
vezes são deselegantesO comando switch tem um formato limpo e claro. A instrução switch
parêntesesO corpo do comando switch é composto de vários casos rotulados por uma constante e
opcionalmente um caso defaultA expressão entre parênteses após a palavra-chave switch
O corpo de cada caso é composto por qualquer número de instruçõesGeralmente, a última
instrução é breakO comando break causa a saída imediata de todo o corpo do switch. Na falta do

6.3 Switch construções if-else possam executar testes para escolha de uma entre várias alternativas, muitas consiste na palavra-chave switch seguida do nome de uma variável ou de um número constante entre determina para qual caso será desviado o controle do programa. comando break, todas as instruções após o caso escolhido serão executadas, mesmo as que pertencem aos casos seguintes. Sintaxe:

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação switch(variável ou constante) { case constante1: instrução; instrução; break; case constante2: instrução; instrução; break; case constante3: instrução: instrução: break; default: instrução; instrução; }

Você não poderá usar uma variável nem uma expressão lógica como rótulo de um caso
Pode haver nenhuma, uma ou mais instruções seguindo cada casoEstas instruções não necessitam
estar entre chavesO corpo de um switch deve estar entre chaves.
Se o rótulo de um caso for igual ao valor da expressão do switch, a execução começa nele
Se nenhum caso for satisfeito e existir um caso default, a execução começará neleUm caso default
é opcionalNão pode haver casos com rótulos iguais. A seguir apresentamos um exemplo que
calcula o dia da semana a partir de uma dataO ano deve ser maior ou igual a 1600, pois nesta data

houve uma redefinição do calendário.

#include <stdio.h> #include <conio.h> void main() {

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação int D, M, A, i; long int F = 0; do { do { printf("\nDigite uma data na forma d/m/a: "); scanf("%d/%d/%d", &D, &M, &A); } while(A<1600 || M<1 || M>12 || D<1 || D>31); F = A + D + 3*(M-1) - 1; if(M<3) { A--; i = 0; } else i = .4*M+2.3;

F+= A/4 - i; i = A/100 + 1; i *= .75; F -= i; F %= 7; switch(F) { case 0: printf("\nDomingo"); break; case 1: printf("\nSegunda-Feira"); break; case 2: printf("\nTerca-Feira"); break; case 3: printf("\nQuarta-Feira");

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação break; case 4: printf("\nQuinta-Feira"); break; case 5: printf("\nSexta-Feira"); break; case 6: printf("\nSabado"); break; }

}while(getche()!=27); /*Tecla ESC nao for pressionada*/

(Parte 6 de 7)

Comentários