Algoritmos e Técnicas de Programação - Aula 04
-
Upload
thomas-da-costa -
Category
Technology
-
view
1.246 -
download
0
Transcript of Algoritmos e Técnicas de Programação - Aula 04
ANHANGUERA – 2016.2
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃOAULA 04 – ESTRUTURAS DE CONTROLE
Prof. Thomás da [email protected]
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
ESTRUTURAS DE CONTROLE
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
O que é?:
É uma instrução ou comando dentro de uma programa em C, que determina averacidade de uma determinada condição. Essa condição normalmente éformada por uma ou mais proposições simples.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Condicional IF – ELSE:
A primeira instrução condicional que vamos estudar é o comando if. Nestecomando, o primeiro bloco determinada que a condição é verdadeira. Osegundo bloco que começa pela instrução else, determina que a condição éfalsa.
if (condição)
<resultado verdadeiro>
else
<resultado falso>
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Exemplo:
if (media >= 6)
printf("Aluno aprovado !!!");
else
printf("Aluno reprovado !!!");
Condição é verdadeira.
Condição é falsa.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
double nota_b1;
double nota_b2;
double media;
printf("Digite a nota da B1:");
scanf("%lf", ¬a_b1);
printf("Digite a nota da B2:");
scanf("%lf", ¬a_b2);
media = ((nota_b1 * 0.4) + (nota_b2 * 0.6));
printf("Média: %.2f\n", media);
if (media >= 6)
printf("Aluno aprovado !!!");
else
printf("Aluno reprovado !!!");
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Importante:
Em um bloco condicional if, quando as instruções seguintes ao if não estãodentro de chaves, somente a linha abaixo da condição será executada. Casodesejamos que o bloco condicional execute mais de uma linha, devemos incluiras chaves, criando um novo escopo. Isso é válido também para instrução else.
if (condição)
{
<instrução 1>;
<instrução 2>;
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Exemplo:
if (numero >=0 && numero <= 10)
{
printf("Número válido !!!\n");
printf("Número digitado: %d\n", numero);
}
else
printf("Número inválido !!!\n");
As chaves colocam as linhas dentro de um escopo.
Sem chaves somente a linha seguinte é executada.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
#include <conio.h>
int main()
{
int numero;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número entre 0 e 10: ");
scanf("%d", &numero);
if (numero >=0 && numero <= 10)
{
printf("Número válido !!!\n");
printf("Número digitado: %d\n", numero);
}
else
printf("Número inválido !!!\n");
printf("Bye !!!\n");
getch();
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Operadores:
ESTRUTURAS DE CONTROLE
Negação Conjunção
> Maior
>= Maior igual
< Menor
<= Menor igual
!= Diferente de
== Igual
= Atribuição de valores
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Proposições:
No próximo exemplo, vamos estudar um problema com condições maiscomplexas. Essas condições, possuem as mesmas regras das expressõesproposicionais.
ESTRUTURAS DE CONTROLE
Negação Conjunção Disjunção
! && ||
• A ordem de resolução dos conectivos segue a tabela abaixo.• Quando existir uma expressão com parênteses, eles deverão ser
resolvidos primeiro.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <stdbool.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
bool p;
bool q;
bool r;
p = true;
q = false;
r = true;
if (((q && r) || (!p && r)) && r)
printf("Verdadeiro !!!\n");
else
printf("Falso !!!\n");
printf("Resultado da expressão: %d\n", ((q && r) || (!p && r)) && r);
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Condicional IF – ELSE IF:
ESTRUTURAS DE CONTROLE
Em determinadas situações de um programa, pode existir mais de umacondição verdadeira em um comando if. Para resolver este problema,utilizamos o comando else if que verifica a veracidade de outras condições.Caso nenhuma das condições seja verdadeira, a condicional entra no blocoelse.
if (condição 1)<resultado verdadeiro>
else if (condição 2)<resultado verdadeiro>
else<resultado falso>
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Exemplo:
ESTRUTURAS DE CONTROLE
if (opcao_menu == 1)printf("Opção de incluir aluno selecionado");
else if (opcao_menu == 2)printf("Opção de listar aluno selecionado");
else if (opcao_menu == 3)printf("Saindo !!!");
elseprintf("Opção inválida !!!");
Condições verdadeiras.
Condição falsa.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>
int main(){
setlocale(LC_ALL, "Portuguese");
int opcao_menu;printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");
scanf("%d", &opcao_menu);
if (opcao_menu == 1)printf("Opção de incluir aluno selecionado");
else if (opcao_menu == 2)printf("Opção de listar aluno selecionado");
else if (opcao_menu == 3)printf("Saindo !!!");
elseprintf("Opção inválida !!!");
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
ESTRUTURAS DE CONTROLE
Condicional SWITCH:
Vamos estudar um novo comando condicional: o switch. A instrução switch éum comando que valida a informação de uma determinada variável.Normalmente, a variável utilizada para verificação de um valor é do tipo int.Não conseguimos validar proposições mais complexas em um comando switch.
switch (variável){
case <constante 1>:{
<instrução 1>;break;
}...default:{
<nenhuma das opções anteriores>;break;
}}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
ESTRUTURAS DE CONTROLE
Exemplo:switch (opcao_menu){
case 1:{
printf("Opção de incluir aluno selecionado");break;
}case 2:{
printf("Opção de listar aluno selecionado");break;
}...default:{
printf("Opção inválida !!!");break;
}}
Variável condicional.
Condições verdadeiras.
Condição falsa.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>
int main(){
setlocale(LC_ALL, "Portuguese");
int opcao_menu;printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");
scanf("%d", &opcao_menu);
switch (opcao_menu){
case 1:{
printf("Opção de incluir aluno selecionado");break;
}case 2:{
printf("Opção de listar aluno selecionado");break;
}case 3:{
printf("Saindo !!!");break;
}default:{
printf("Opção inválida !!!");break;
}}
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
O que é?:
São comandos utilizados para repetir um determinado conjunto de instruçõesaté que uma determinada condição seja satisfeita. Vamos estudar os 3 tipos delaços encontrados em programação.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laço - WHILE:
A primeira instrução de laço que vamos estudar é o while. Esta instrução delaço, executa um bloco de comando enquanto uma condição for verdadeira.Além disso, o comando while pode ser ou não executado caso a condição nãoseja verdadeira inicialmente.
while (condição){
<instrução 1>;<instrução 2>;
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Exemplo:
int opcao_menu = 0;
while (opcao_menu != 3){
system("cls");printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");...
}
Condição.
Bloco de comando que vai ser repetir enquanto a condição for verdadeira.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>#include <stdlib.h>#include <conio.h>
int main(){
setlocale(LC_ALL, "Portuguese");
int opcao_menu = 0;
while (opcao_menu != 3){
system("cls");printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");
scanf("%d", &opcao_menu);
switch (opcao_menu){
case 1:{
printf("Opção de incluir aluno selecionado.\n");getch();break;
}case 2:{
printf("Opção de listar aluno selecionado.\n");getch();break;
}case 3:{
printf("Saindo !!!\n");getch();break;
}default:{
printf("Opção inválida !!!\n");getch();break;
}}
}
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laço DO – WHILE:
A instrução do – while tem a mesma semelhança que a instrução while. Nestetipo de laço, o bloco de comando é executado pelo menos uma vez, antes devalidar a condição do laço.
do{
<instrução 1>;<instrução 2>;
} while (condição);
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>#include <stdlib.h>#include <conio.h>
int main(){
setlocale(LC_ALL, "Portuguese");
int opcao_menu;
do{
system("cls");printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");
scanf("%d", &opcao_menu);
switch (opcao_menu){
case 1:{
printf("Opção de incluir aluno selecionado.\n");getch();break;
}case 2:{
printf("Opção de listar aluno selecionado.\n");getch();break;
}case 3:{
printf("Saindo !!!\n");getch();break;
}default:{
printf("Opção inválida !!!\n");getch();break;
}}
} while (opcao_menu != 3);
}
Este bloco é executado pelo menos uma vez, independente da condição,
pois a mesma é validada depois.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Operadores
ESTRUTURAS DE CONTROLE
Detalhes:
Antes de estudar o próximo laço, vamos conhecer alguns operadores em C.
Operador Conjunção
++ Incremento
-- Decremento
+= Atribuição de soma
-= Atribuição de subtração
*= Atribuição de multiplicação
/= Atribuição de divisão
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>
int main(){
setlocale(LC_ALL, "Portuguese");
int a = 1;int b = 1;int c = 1;
printf("Variável: %d\n", a);printf("Pós-incremento: %d\n", a++);printf("Variável: %d\n\n", a);
printf("Variável: %d\n", a);printf("Pré-incremento: %d\n", ++a);printf("Variável: %d\n\n", a);
printf("%d\n", b--);printf("%d\n", --b);
c += 1;printf("%d\n", c);
c -= 1;printf("%d\n", c);
c *= 2;printf("%d\n", c);
c /= 2;printf("%d\n", c);
}
Operadores de Pós-incremento: Valor é usado antes de ser
incrementado.
Operadores de Pré-incremento: Valor é incrementado e depois
o novo valor é utilizado.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laços FOR:
No laço for, a repetição de um bloco de comando, acontece a partir de uminício determinado, uma condição final e uma operação de incremento edecremento, indicando se o laço é crescente ou decrescente. Utilizamos o laçofor principalmente quando temos uma faixa entre dois valores e precisamosefetuar operações de repetições.
for (início;condição;incremento/decremento)
{
<instrução 1>;
<instrução 2>;
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int i;
for (i=0;i<=10;i++)
{
printf("Contando %d\n", i);
}
}
Inicio do laço.
Condição.
Incremento ou decremento: indicando se o laço será
crescente ou decrescente.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
int i;
int inicio, fim;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número inicial:");
scanf("%d", &inicio);
printf("Digite um número final:");
scanf("%d", &fim);
for (i=inicio;i<=fim;i++)
{
printf("Contando %d\n", i);
}
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>#include <locale.h>
int main(){
int i;int inicio, fim;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número inicial:");scanf("%d", &inicio);
printf("Digite um número final:");scanf("%d", &fim);
for (i=inicio;i<=fim;i++){
if ((i % 2) == 0)printf("Número %d par !!!\n", i);
elseprintf("Número %d impar !!!\n", i);
}}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Escopo
Não esquecer !!!:
Em uma condicional ou em um laço, somente a instrução seguinte seráexecutada. As instruções devem ser colocadas dentro de blocos com chaves,para que um conjunto de instruções seja executado.
ESTRUTURAS DE CONTROLE
Chaves !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Funções
O que é?:
São rotinas que tem como objetivo, executar trechos de códigos de formamodular, melhorando a organização do programa e evitando repetição decódigo. As funções são reutilizáveis dentro de um programa.
ESTRUTURAS DE CONTROLE
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Funções
Estrutura de uma função:
Retorno da função.
Parâmetros da função.
Corpo da função.
Escopo de início e fim da função.
double somar(double x, double y){
double resultado = x + y;return resultado;
}
Nome da função.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
double somar(double x, double y);
int main()
{
setlocale(LC_ALL, "Portuguese");
double valor = somar(10, 10);
printf("%lf", valor);
}
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
Protótipo da função.
Chamando a função “somar” passando os parâmetros 10 e 10.
Retornando o valor para a variável “valor”.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Funções
Estrutura de uma função:
• Tipos de retorno da função:• double, float, int, char, void e outros tipos
• Parâmetros da função• Cada parâmetro é composto pelo tipo, nome e separados por
virgulas.• Retorno da função:
• Quando uma função deve retornar um valor, devemos usar a palavrareservada return seguido de um valor, variável ou operação domesmo tipo de retorno.
• Corpo da função:• Código fonte com a funcionalidade que a função deve executar.
• Protótipo:• As funções possuem protótipos para definir sua estrutura.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
void ola_mundo();
int main()
{
setlocale(LC_ALL, "Portuguese");
ola_mundo();
}
void ola_mundo()
{
printf("Olá Mundo !!!");
}
void não retornar nenhum valor para a função.
Não existe a declaração da variável do tipo void.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Resumo
• As instruções condicionais são utilizadas para verificar a veracidade de umadeterminada condição proposicional.
• Os laços executam um bloco de instruções repetidas vezes até umacondição seja satisfeita.
• Existem os operadores condicionais, incremento, decremento e deatribuição matemática.
• Funções são blocos de instruções reutilizáveis dentro de um programa.
ESTRUTURAS DE CONTROLE