SlideShare une entreprise Scribd logo
1  sur  38
ANHANGUERA – 2016.2
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
AULA 04 – ESTRUTURAS DE CONTROLE
Prof. Thomás da Costa
thomascosta@aedu.com
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 a
veracidade 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. Neste
comando, o primeiro bloco determinada que a condição é verdadeira. O
segundo 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", &nota_b1);
printf("Digite a nota da B2:");
scanf("%lf", &nota_b2);
media = ((nota_b1 * 0.4) + (nota_b2 * 0.6));
printf("Média: %.2fn", 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ão
dentro de chaves, somente a linha abaixo da condição será executada. Caso
desejamos que o bloco condicional execute mais de uma linha, devemos incluir
as 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: %dn", 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: %dn", 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 mais
complexas. Essas condições, possuem as mesmas regras das expressões
proposicionais.
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: %dn", ((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 uma
condiçã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 bloco
else.
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 !!!");
else
printf("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çãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
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 !!!");
else
printf("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çãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
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ções
até que uma determinada condição seja satisfeita. Vamos estudar os 3 tipos de
laç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 de
laç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ão
seja 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çãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
...
}
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çãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
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. Neste
tipo de laço, o bloco de comando é executado pelo menos uma vez, antes de
validar 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çãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
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: %dn", a);
printf("Pós-incremento: %dn", a++);
printf("Variável: %dnn", a);
printf("Variável: %dn", a);
printf("Pré-incremento: %dn", ++a);
printf("Variável: %dnn", a);
printf("%dn", b--);
printf("%dn", --b);
c += 1;
printf("%dn", c);
c -= 1;
printf("%dn", c);
c *= 2;
printf("%dn", c);
c /= 2;
printf("%dn", 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 um
início determinado, uma condição final e uma operação de incremento e
decremento, indicando se o laço é crescente ou decrescente. Utilizamos o laço
for principalmente quando temos uma faixa entre dois valores e precisamos
efetuar 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 %dn", 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 %dn", 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);
else
printf("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 forma
modular, melhorando a organização do programa e evitando repetição de
có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 palavra
reservada return seguido de um valor, variável ou operação do
mesmo 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 uma
determinada condição proposicional.
• Os laços executam um bloco de instruções repetidas vezes até uma
condição seja satisfeita.
• Existem os operadores condicionais, incremento, decremento e de
atribuição matemática.
• Funções são blocos de instruções reutilizáveis dentro de um programa.
ESTRUTURAS DE CONTROLE
Obrigado !!!
ANHANGUERA – 2016.2

Contenu connexe

Tendances

Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fontethomasdacosta
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++Verônica Veiga
 
Exercicios sequenciais
Exercicios sequenciaisExercicios sequenciais
Exercicios sequenciaisMirlem Pereira
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_javaMirlem Pereira
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetiçãoTácito Graça
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação cClausia Antoneli
 
LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2thomasdacosta
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleçãoTácito Graça
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
Tutorial pascal zim
Tutorial pascal zimTutorial pascal zim
Tutorial pascal zim12anogolega
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlex Camargo
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem Capolllorj
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILENeto Côrtes
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003Henoc Freire
 

Tendances (20)

Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
Exercicios sequenciais
Exercicios sequenciaisExercicios sequenciais
Exercicios sequenciais
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Aula 05 subprogramas
Aula 05   subprogramasAula 05   subprogramas
Aula 05 subprogramas
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
 
LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Tutorial pascal zim
Tutorial pascal zimTutorial pascal zim
Tutorial pascal zim
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Java4
Java4Java4
Java4
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem C
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Estruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILEEstruturas de Repetição - FOR, WHILE e DO WHILE
Estruturas de Repetição - FOR, WHILE e DO WHILE
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003
 

Similaire à Algoritmos e Técnicas de Programação - Aula 04

Similaire à Algoritmos e Técnicas de Programação - Aula 04 (20)

0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
 
Java3
Java3Java3
Java3
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Introducao logica
Introducao logicaIntroducao logica
Introducao logica
 
Apostila c
Apostila cApostila c
Apostila c
 
Aula3
Aula3Aula3
Aula3
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
Algoritmos Aula 07
Algoritmos Aula 07Algoritmos Aula 07
Algoritmos Aula 07
 
Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxo
 
Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1
 
Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2
 
Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2Estrutura de Dados - Características da linguagem C - 2
Estrutura de Dados - Características da linguagem C - 2
 
Algoritmos Aula 11
Algoritmos Aula 11Algoritmos Aula 11
Algoritmos Aula 11
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 

Plus de thomasdacosta

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01thomasdacosta
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01thomasdacosta
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06thomasdacosta
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05thomasdacosta
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07thomasdacosta
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06thomasdacosta
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04thomasdacosta
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05thomasdacosta
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03thomasdacosta
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05thomasdacosta
 
Redes de Computadores - Aula 03
Redes de Computadores - Aula 03Redes de Computadores - Aula 03
Redes de Computadores - Aula 03thomasdacosta
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02thomasdacosta
 

Plus de thomasdacosta (20)

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 
Redes de Computadores - Aula 03
Redes de Computadores - Aula 03Redes de Computadores - Aula 03
Redes de Computadores - Aula 03
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 

Algoritmos e Técnicas de Programação - Aula 04

  • 1. ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 04 – ESTRUTURAS DE CONTROLE Prof. Thomás da Costa thomascosta@aedu.com
  • 2. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE
  • 3. 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 a veracidade de uma determinada condição. Essa condição normalmente é formada por uma ou mais proposições simples.
  • 4. 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. Neste comando, o primeiro bloco determinada que a condição é verdadeira. O segundo bloco que começa pela instrução else, determina que a condição é falsa. if (condição) <resultado verdadeiro> else <resultado falso>
  • 5. 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.
  • 6. 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", &nota_b1); printf("Digite a nota da B2:"); scanf("%lf", &nota_b2); media = ((nota_b1 * 0.4) + (nota_b2 * 0.6)); printf("Média: %.2fn", media); if (media >= 6) printf("Aluno aprovado !!!"); else printf("Aluno reprovado !!!"); }
  • 7. 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ão dentro de chaves, somente a linha abaixo da condição será executada. Caso desejamos que o bloco condicional execute mais de uma linha, devemos incluir as chaves, criando um novo escopo. Isso é válido também para instrução else. if (condição) { <instrução 1>; <instrução 2>; }
  • 8. 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: %dn", numero); } else printf("Número inválido !!!n"); As chaves colocam as linhas dentro de um escopo. Sem chaves somente a linha seguinte é executada.
  • 9. 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: %dn", numero); } else printf("Número inválido !!!n"); printf("Bye !!!n"); getch(); }
  • 10. 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
  • 11. 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 mais complexas. Essas condições, possuem as mesmas regras das expressões proposicionais. 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.
  • 12. 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: %dn", ((q && r) || (!p && r)) && r); }
  • 13. 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 uma condiçã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 bloco else. if (condição 1) <resultado verdadeiro> else if (condição 2) <resultado verdadeiro> else <resultado falso>
  • 14. 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 !!!"); else printf("Opção inválida !!!"); Condições verdadeiras. Condição falsa.
  • 15. 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çãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); 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 !!!"); else printf("Opção inválida !!!"); }
  • 16. 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; } }
  • 17. 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.
  • 18. 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çãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); 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; } } }
  • 19. 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ções até que uma determinada condição seja satisfeita. Vamos estudar os 3 tipos de laços encontrados em programação.
  • 20. 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 de laç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ão seja verdadeira inicialmente. while (condição) { <instrução 1>; <instrução 2>; }
  • 21. 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çãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); ... } Condição. Bloco de comando que vai ser repetir enquanto a condição for verdadeira.
  • 22. 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çãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); 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; } } } }
  • 23. 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. Neste tipo de laço, o bloco de comando é executado pelo menos uma vez, antes de validar a condição do laço. do { <instrução 1>; <instrução 2>; } while (condição);
  • 24. 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çãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); 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.
  • 25. 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
  • 26. 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: %dn", a); printf("Pós-incremento: %dn", a++); printf("Variável: %dnn", a); printf("Variável: %dn", a); printf("Pré-incremento: %dn", ++a); printf("Variável: %dnn", a); printf("%dn", b--); printf("%dn", --b); c += 1; printf("%dn", c); c -= 1; printf("%dn", c); c *= 2; printf("%dn", c); c /= 2; printf("%dn", c); } Operadores de Pós-incremento: Valor é usado antes de ser incrementado. Operadores de Pré-incremento: Valor é incrementado e depois o novo valor é utilizado.
  • 27. 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 um início determinado, uma condição final e uma operação de incremento e decremento, indicando se o laço é crescente ou decrescente. Utilizamos o laço for principalmente quando temos uma faixa entre dois valores e precisamos efetuar operações de repetições. for (início;condição;incremento/decremento) { <instrução 1>; <instrução 2>; }
  • 28. 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 %dn", i); } } Inicio do laço. Condição. Incremento ou decremento: indicando se o laço será crescente ou decrescente.
  • 29. 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 %dn", i); } }
  • 30. 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); else printf("Número %d impar !!!n", i); } }
  • 31. 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 !!!
  • 32. 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 forma modular, melhorando a organização do programa e evitando repetição de código. As funções são reutilizáveis dentro de um programa. ESTRUTURAS DE CONTROLE
  • 33. 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.
  • 34. 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”.
  • 35. 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 palavra reservada return seguido de um valor, variável ou operação do mesmo 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.
  • 36. 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.
  • 37. 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 uma determinada condição proposicional. • Os laços executam um bloco de instruções repetidas vezes até uma condição seja satisfeita. • Existem os operadores condicionais, incremento, decremento e de atribuição matemática. • Funções são blocos de instruções reutilizáveis dentro de um programa. ESTRUTURAS DE CONTROLE