sábado, 24 de agosto de 2013

Comando – do ... while em C



Para executar um bloco de instruções, subordinado a um laço de repetição, pelo menos uma vez, temos o comando do...while

Sintaxe:
do
{
   instruções;
}while (condição);

Exemplo:
#include <stdio.h>
#include <conio.h>
void main()
{
int i=1;
do
{
printf("\n %d",i);
i++;
}while(i <=10);
getch();
}

Exercícios:
 
Faça um programa para calcular a série Fibonacci até o vigésimo termo. A série tem a seguinte forma:  1,1,2,3,5,8,13,21,34,… (use obrigatoriamente a estrutura do...while).
 
Solução:
#include <stdio.h>
#include <conio.h>
void main()
{
int ant=1, prox=1, novo, cont=2;
printf("%d, %d",ant,prox);
do
{
novo = ant + prox;
printf(“, %d",novo);
ant = prox;
prox = novo;
cont++;
}while(cont <=20);
getch();
}

Faça um programa para ler um valor X e calcular Y = X+2X+3X+4X+5X+…+20X (use a estrutura do...while):

Solução:
#include <stdio.h>
#include <conio.h>
void main()
{
int x, y=0, i=1;
printf("Entre com um valor para x: ");
scanf("%d",&x);
do
{
y = y + (i * x);
i++;
}while(i <= 20);
printf("y = %d",y);
getch();
}

Comandos de Desvio de Execução:
Muitas vezes é necessário interromper o fluxo normal de processamento de um laço de repetição, independente deste laço ter sido implementado com for ou while.
 
Para fazer isso, temos dois comandos de desvio: o break e o continue.

Comando - while em C



Comando normalmente utilizado quando é necessário repetir um bloco de instruções sem saber de antemão quantas vezes este bloco deverá ser executado.

Sintaxe:
while(condição)
{
   instruções;
}
 
Quando precisamos testar uma condição antes mesmo de iniciar a execução de um bloco de instruções devemos então utilizar o comando while com teste no início.
 
Exemplo:
#include <stdio.h>
#include <conio.h>
void main()
{
int i=1;
while(i <= 10)
{
printf("%d \n",i);
i++;
}
getch();
}

Exercício:
Faça um programa para calcular um valor A elevado a um expoente B. Os valores A e B deverão ser lidos, onde a > 0, b >= 0:
 
Solução:
 
#include <stdio.h>
#include <conio.h>
void main()
{
int a, b, resultado = 1;
printf("Entre com a base e o expoente: \n");
scanf("%d %d",&a,&b);
while(b > 0)
{
resultado = resultado * a;
b--;
}
printf("Resultado: %d",resultado);
getch();
}

Faça um programa para calcular N!, onde  N >= 0.
Solução:
 
#include <stdio.h>
#include <conio.h>
void main()
{
long int n, resultado=1;
printf("Entre com um numero: \n");
scanf("%ld",&n);
while(n > 0)
{
resultado = resultado * n;
n--;
}
printf("O fatorial eh igual a %ld",resultado);
getch();
}

Comando - for em C



Sintaxe:
for(inicialização; teste; incremento)
{
   instruções;
}

A primeira expressão é utilizada para a inicialização, onde normalmente é inicializada uma variável contadora.
A inicialização é executada somente uma vez, no momento em que o laço é ativado.
O teste, normalmente é uma expressão relacional, que testa a validade de nova execução do laço.
O incremento, modifica o valor da variável utilizada para controle do laço.
Normalmente é um incremento de 1 no valor da variável.

Exemplo:
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
for(i=1;i<=10;i++)
{
printf("\n%d",i);
}
getch();
}

Exemplos Flexibilidade - for

#include <stdio.h>
#include <conio.h>
void main()
{
int x,y;
for(x=0,y=0; x+y<10; x++,y++)
{
printf("\n%d",x+y);
}
getch();
}

Outro Exemplo:
 
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
for( ; (c=getch()) != 's'; )
{
printf("\n%c",c);
}
}

Exercício:
Faça um programa que leia uma string do teclado e após isso escreva ela invertida na tela do usuário.
Solução:
 
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char str[50];
int i;
printf("Entre com uma palavra: ");
gets(str);

for(i=(strlen(str)-1);i>=0;i--)
{
printf("%c",str[i]);
}
getch();
}

Fazer um programa, usando obrigatoriamente a estrutura for, que calcule  escreva o valor de S onde:
Solução:
 
#include <stdio.h>
#include <conio.h>
void main()
{
int num, den;
float s=0;

for(num=1,den=1;num<=99;num+=2,den++)
{
s = s + (float)num/den;
}
printf("%f",s);
getch();
}

Sem o (float) a divisão seria uma divisão inteira:

Faça um programa que leia 20 valores reais e escreva seu somatório (use a estrutura for):
Solução:
#include <stdio.h>
#include <conio.h>
void main()
{
int num,i, s=0;
printf("Entre com 5 numeros\n");
for(i=1;i<=5;i++)
{
scanf("%d",&num);
s = s + num;
}
printf("%d",s);
getch();
}

Comandos de Seleção Múltipla em C



switch ... case

O comando switch...case testa sucessivamente o valor de uma expressão em relação a uma série de constantes.
Quando o teste resultar na igualdade de valores, os comando subordinados à constante (int ou char) são então executados.

Sintaxe:
switch(expressão) {
   case constante1: {bloco de instruções; break;}
   case constante2: {bloco de instruções; break;}
   ...
   case constante3: {bloco de instruções; break;}
   [default {bloco de instruções;}]
}

Exemplo:

#include <stdio.h>
#include <conio.h>
void main()
{
float num1, num2;
char operador;
printf("Digite: Primeiro Numero, Operador, Segundo Numero:\n");
scanf("%f %c %f",&num1,&operador,&num2);
switch(operador)
{
  case '+': {printf("\nResultado: %f",num1 + num2); break;}
  case '-': {printf("\nResultado: %f",num1 - num2); break;}
  case '*': {printf("\nResultado: %f",num1 * num2); break;}
  case '/': {printf("\nResultado: %f",num1 / num2); break;}
}
getch();
}


Exercício:

Faça um programa que leia um número que represente um determinado mês do ano. Após a leitura escreva por extenso qual o mês lido. Caso o número digitado não esteja na faixa de 1..12 escreva uma mensagem informando o usuário do erro da digitação.

Solução:

#include <stdio.h>
#include <conio.h>
void main()
{
int mes;
printf("Digite um numero entre 1 e 12: ");
scanf("%d",&mes);
switch(mes)
{
case 1: {printf("\nJaneiro"); break;}
case 2: {printf("\nFevereiro"); break;}
case 3: {printf("\nMarco"); break;}
// ...
case 12: {printf("\nDezembro"); break;}
default: {printf("\nNumero Invalido");}
}
getch();
}

Comandos de Seleção Única em C



Na linguagem C temos comandos para avaliar expressões e selecionar aquela ou aquelas que forem verdadeiras
Mais precisamente isto significa executar o bloco de comandos que está subordinado à expressão que resultou em verdadeiro


if – Sem Alternativa

Sintaxe:
if(condição)
{
   instruções;
} 
 
Neste tipo de avaliação condicional há uma expressão sendo avaliada e caso ela resulte em verdadeiro o bloco de instruções que a segue é executado.
 
Caso resulte em falso o bloco é saltado.
Os delimitadores de bloco de instruções { e } somente são obrigatórios caso o bloco tenha mais que uma instruções.

Exemplo:
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);
if(a == b)
{
printf("Os Numeros sao Iguais");
}
getch();
}

if – Com Alternativa

Sintaxe:
if(condição)
{
   instruções;
}
else
{
   instruções
} 
 
Nesta seleção há uma expressão de teste, que se a expressão resultar em verdadeiro é executado o bloco de instruções que segue o if, caso contrário, é executado o bloco que segue o else.
 
Exemplo:
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);
if(a == b)
{
printf("Os Numeros sao Iguais");
}
else
{
printf("Os Numeros sao Diferentes");
}
getch();
}

if – Mais que uma Condição

Sintaxe:
if(condição)
{
   instruções;
}
else if(condição)
{   instruções;
}
else if(condição)
{
   instruções;
}
....
else
{
   instruções;
}

Exemplo:

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

void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);
if(a > b)
{
printf("O primeiro e maior que o segundo");
}
else if (a < b)
{
printf("O primeiro e menor que o segundo");
}
else
{
printf("Os numeros sao iguais");
}
getch();
}

Operador Ternário “? :”

Sintaxe:
Expressão_de_teste ? 
               Expressão_executada_se_verdadeiro :
               Expressão_executada_se_falso;

Um comando idêntico ao comando de seleção onde há uma expressão de teste com uma alternativa (if-else) é o operador “? :”
Este operador é preferível quando for necessário utilizar uma expressão de teste mais sintética.
Este operador é denominado de ternário pois requer três operandos.

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

void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);

a == b ? printf("Iguais") :  printf("Diferentes");

//    tambem poderiamos fazer
// printf("%s", a == b ? "Iguais" : "Diferentes");

getch();
}

Outro Exemplo

int a,b,maior;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);

maior = a > b ? a : b;
printf("\n Maior = %d",maior);

 maior recebe o valor de a ou de b

Exercícios:
Construa um programa capaz de informar se um número inteiro é par ou impar:
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int numero;
printf("Entre com um numero: ");
scanf("%d",&numero);

if((numero % 2) == 0)
printf("Numero par");
else printf("Numero impar");

//   (numero % 2) == 0 ? printf("Par") : printf("Impar");
getch();
}

Complemente o programa feito para calcular a média de um aluno do curso de programação de computadores, adicionando uma saída para o usuário da situação do aluno (aprovado, reprovado ou final).

Solução:
             .
         .
         .
if(media >= 7)
   printf("Aprovado");
else if (media >= 4)
   printf("Final");
else printf("Reprovado");
         .
         .
         .

Operador Ternário “? :” em C



Sintaxe:
Expressão_de_teste ? 
               Expressão_executada_se_verdadeiro :
               Expressão_executada_se_falso;

Um comando idêntico ao comando de seleção onde há uma expressão de teste com uma alternativa (if-else) é o operador “? :”
 
Este operador é preferível quando for necessário utilizar uma expressão de teste mais sintética.
Este operador é denominado de ternário pois requer três operandos.
 
 
Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);

a == b ? printf("Iguais") :  printf("Diferentes");

//    tambem poderiamos fazer
// printf("%s", a == b ? "Iguais" : "Diferentes");

getch();
}

Outro Exemplo

int a,b,maior;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);

maior = a > b ? a : b;
printf("\n Maior = %d",maior);

 maior recebe o valor de a ou de b

Exercícios:
Construa um programa capaz de informar se um número inteiro é par ou impar:
Solução:
#include <stdio.h>
#include <conio.h>

void main()
{
int numero;
printf("Entre com um numero: ");
scanf("%d",&numero);

if((numero % 2) == 0)
printf("Numero par");
else printf("Numero impar");

//   (numero % 2) == 0 ? printf("Par") : printf("Impar");
getch();
}

Complemente o programa feito para calcular a média de um aluno do curso de programação de computadores, adicionando uma saída para o usuário da situação do aluno (aprovado, reprovado ou final).

Solução:
              .
         .
         .
if(media >= 7)
   printf("Aprovado");
else if (media >= 4)
   printf("Final");
else printf("Reprovado");
         .
         .
         .

Criar if e else em C



if – Com Alternativa

Sintaxe:
if(condição)
{
   instruções;
}
else
{
   instruções
} 
Exemplo:
#include <stdio.h>
#include <conio.h>

void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);
if(a == b)
{
printf("Os Numeros sao Iguais");
}
else
{
printf("Os Numeros sao Diferentes");
}
getch();
}

if – Mais que uma Condição

Sintaxe:
if(condição)
{
   instruções;
}
else if(condição)
{   instruções;
}
else if(condição)
{
   instruções;
}
....
else
{
   instruções;
}

Exemplo:

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

void main()
{
int a,b;
printf("Entre com dois numeros: \n");
scanf("%d %d",&a,&b);
if(a > b)
{
printf("O primeiro e maior que o segundo");
}
else if (a < b)
{
printf("O primeiro e menor que o segundo");
}
else
{
printf("Os numeros sao iguais");
}
getch();
}

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Buy Coupons