SlideShare uma empresa Scribd logo
Aula 09
Linguagem C
Ênio Prates Vasconcelos Filho
Faculdades Alfa
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Laços de repetição:
• For;
• While;
Δ Estruturas:
• Vetores;
• Matrizes;
Δ Funções;
Δ Exercícios;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ As expressões inicial e incremento ou decremento são, em geral, atribuições
à variável de controle e condição é uma expressão relacional que envolve a
mesma variável de controle.
Δ A semântica do comando “for” é:
• A expressão inicial é avaliada, consistindo geralmente na inicialização de uma
variável de controle;
• Em seguida, é avaliada a condição:
ose a condição for verdadeira, o <bloco de comandos> é executado e, ao chegar
ao delimitador } ou final do comando “for”, automaticamente se incrementa ou
se decrementa a variável de controle e se retorna à avaliação da condição;
• Quando a condição ficar falsa, ou seja, o incremento/decremento fizer a
variável de controle chegar no limite da condição, o comando de repetição é
finalizado;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ Exemplo: Façamos um programa que imprima os caracteres da tabela ASCII
padrão (entre o número 32 e o 127) e sua representação decimal;
#include <stdio.h>
int main(void)
{
int i;
for (i = 32; i <= 126; i++)
{
printf("%c [%d]n", i, i);
}
return 0;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – While
Δ O comando while permite que um certo trecho de programa seja executado
ENQUANTO uma certa condição for verdadeira. A forma do comando while
é a seguinte:
while (condição){
// comandos a serem repetidos
// comandos a serem repetidos
}
// comandos após o 'while'
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – While
Δ O funcionamento é o seguinte:
• Testa a condição;
o Se a condição for falsa então pula todos os comandos do bloco
subordinado ao while e passa a executar os comandos após o bloco do
while.
o Se condição for verdadeira então executa cada um dos comandos do
bloco subordinado ao while.
o Após executar o último comando do bloco do while volta ao passo 1.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – While
Δ O comando while deve ser usado sempre que:
• Não soubermos exatamente quantas vezes o laço deve ser repetido
oO usuário vai determinar quantas vezes o laço será repetido, através da
condição;
• O teste deva ser feito antes de iniciar a execução de um bloco de comandos;
• Houver casos em que o laço não deva ser repetido nenhuma vez.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – While
Δ Exemplo 01: um programa que imprima a expressão “repetindo...”,
enquanto o usuário não digitar um número diferente de 0;
#include <stdio.h>
int main (){
int contador;
int continua;
continua = 10;
contador = 0;
while (continua != 0) // enquanto for
igual a '0'
{
// comandos a serem repetidos
printf("Repetindo....n");
contador = contador + 1;
printf("Tecle '0' se deseja sairn");
scanf("%d",&continua);
}
if (contador == 0)
printf("O bloco NAO foi repetido.");
else printf("O bloco foi repetido %d
vezes", contador);
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – While
Δ Exemplo 02: Um programa que calcula a idade média de um grupo de
pessoas. A finalização da entrada de números é dada por um -1:
#include <stdio.h>
int main (){
float soma, quantidade;
int idade;
float media;
soma = 0.0;
quantidade = 0.0;
idade = 0;
while (idade != -1) {
// comandos a serem repetidos
printf("Idade da pessoa %.0f. (tecle -1 se quiser
encerrar).n",quantidade+1);
scanf("%d", &idade);
if (idade >=0) {
soma = soma + idade;
quantidade = quantidade + 1;
}
}
// Faz o calculo da media de idade
if (quantidade >0) {
media = soma / quantidade;
printf("A media de idade das %.0f
pessoas eh: %5.2f", quantidade,media);
}else{
printf("Nenhum dado foi informado.");
}
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Faça você mesmo
1. Elabore, um programa que efetue o cálculo da fatorial de um número
inserido pelo usuário. Em seguida, imprima na tela o valor calculado. No
final, pergunte ao usuário se ele deseja inserir um novo valor. Caso o
usuário insira um número negativo, termine a repetição. Se o usuário
inserir o número 0, indique que o fatorial é 1.
Relembrando: Fatorial de 5: 5! = 5*4*3*2*1; Fatorial de 0: 0! = 1; Fatorial de
-2: -2! = Não existe;
2. Faça um programa em C que leia um conjunto de números (X) e imprima
sua soma (Soma) e sua média (Media). Admita que o valor 9999 é
utilizado como condição para fim de leitura.
Ex.: 1, 2, 3 => Soma=6 Media=2
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores
Δ Introdução:
• Um vetor é uma coleção de variáveis de mesmo tipo, acessíveis com um único
nome e armazenados contiguamente na memória;
• A individualização de cada variável de um vetor é feita através do uso de índices;
• Os Vetores são matrizes de 1 só dimensão;
• Os índices começam em zero;
• A quantidade de elementos que o vetor pode armazenar deve ser um valor inteiro
fixo
Δ Declaração de matrizes:
• int Vetor[5];
// declara um vetor de inteiros de 5 posições, começando
na posição 0 até a posição 4
• char palavra[10];
// declara um vetor de char (string) de 10
posições, começando na posição 0 até a posição 9;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores
Δ Exemplo:
int tam=5;
char z[tam];
//Começa na posição zero e termina na posição 4
Δ ATRIBUIÇÃO
vet[0]=1; //atribui o valor 1 à primeira posição
do vetor
X[3] = ‘b’; //atribui a letra b à quarta posição
do vetor
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores
Δ PREENCHENDO
for(i=0; i<10; i++)
scanf(“%d”, &vetor[i]);
Δ MOSTRANDO OS VALORES
for(i=0; i<10; i++)
printf(“%d”, vetor[i]);
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Vetores
Δ Exemplo: leia 10 números inteiros positivos e armazene em um vetor. Em seguida, determine e imprima o maior valor
do vetor;
#include <stdio.h>
int main (){
int v[10], i, maior = 0,menor;
for (i=0; i<10; i++){
scanf("%d", &v[i]);
}
for (i=0; i<10; i++){
if(i=0){
menor=v[i];
}else{
if (v[i] < menor){
maior = v[i];
}
}
printf("maior = %dn", menor);
return (0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ Introdução
• Variáveis homogêneas bidimensionais ou multidimensionais
• Pode ter até 12 dimensões de acordo com o padrão ANSI
• Para cada dimensão, um índice deve ser usado
Δ DECLARAÇÃO
float x[2][6]; //uma matriz com duas linhas e seis
colunas
char mat[4][3]; //uma matriz com quatro linhas e tres
colunas
float y[2][4][3]; //uma matriz com duas linhas,
quatro colunas e três profundidades
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
int mat[4][3];
//uma matriz com quatro linhas e três colunas
0,0
1,0
2,0
3,0
0,1
1,1
2,1
3,1
0,2
1,2
2,2
3,2
Mat[4][3]
Linhas
Colunas
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ ATRIBUIÇÃO
X[1][4] = 5; //atribui o valor 5 ao espaço
identificado pelo índice 1 (linha 2) e índice 4
(coluna 5)
Mat[3][2] = ‘d’; //atribui o valor d à quarta linha
e à terceira coluna
Y[0][3][1] = 12; //atribui o valor 12 à primeira
linha, quarta coluna e segunda profundidade.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ PREENCHENDO
int mat[4][3];
for(i=0; i<4; i++){ //linha
for(j=0; j<3; j++){ //coluna
scanf(“%d”, &mat[i][j] );
}
}
Preenche primeiro todas as colunas da linha 0
Depois todas as colunas da linha 1
E assim por diante
1
4
7
10
2
5
8
11
3
6
9
12
Mat[4][3]
Linhas
Colunas
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ IMPRIMINDO
int mat[4][3];
for(i=0; i<4; i++){//linha
for(j=0; j<3; j++){//coluna
printf( “%d ”, mat[i][j] );
}
}
8
1
7
90
6
1
0
12
5
7
11
12
Mat[4][3]
Linhas
Colunas
Itens impressos:
8 6 5 1 1 7 7 0 11 90 12 12
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ Exemplo : algoritmo que imprima todos os itens de uma matriz e imprima a
linha da matriz que está sendo impressa:
for(i=0; i<4; i++){
printf( “ Elementos da linha %d ”, i);
for(j=0; j<3; j++){
printf( “ %d ”, x[ i , j ] );
}
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ Exemplo: algoritmo que imprima todos os itens de uma matriz e imprima a
coluna da matriz que está sendo impressa:
for(j=0; j<4; j++){
printf(“Elementos da coluna %d”, j);
for(i=0; i<3; i++){
printf( “ %d ”, x[ i][j ] );
}
}
MEMÓRIA TELA
j i
0 Elementos da coluna 0
0 0 4
0 1 5
0 2 1
1 Elementos da coluna 1
1 0 6
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Matrizes
Δ Exemplo: leia os elementos
de uma matriz 3x4 de
números float. Em seguida,
imprima os elementos no
formato abaixo:
X X X X
X X X X
X X X X
#include <stdio.h>
int main()
{
float m[3][4];
int i, j;
for (i=0; i<3; i++){
for (j=0; j<4; j++)
scanf("%f", &m[i][j]);
}
for (i=0; i<3; i++){
for (j=0; j<4; j++){
printf(“%f", m[i][j]);
}
printf("n");
}
return (0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Faça você mesmo
Δ Faça um algoritmo que copie o conteúdo de um vetor em um segundo vetor;
Δ Faça um algoritmo que some o conteúdo de dois vetores e armazene o resultado
em um terceiro vetor.
Δ Crie um programa em C que peça 10 números, armazene eles em um vetor e diga
qual elemento é o maior, qual é a média;
Δ Crie um programa em C que peça 10 números, armazene eles em um vetor e diga
quantos elementos são maiores que a média;
Δ Faça um algoritmo que leia uma matriz mat 2 x 3 e imprima na tela a soma de
todos os elementos da matriz mat;
Δ Escreva um algoritmo que lê uma matriz M(5,5) e calcule e imprima na tela as
somas:
a) da linha 4 de M;
b) da coluna 2 de M;
c) De todos os elementos de M;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Funções (sub rotinas)
Δ Funções são chamadas de sub rotinas ou subprogramas;
• São blocos de instruções que realizam tarefas específicas;
Δ Como o problema pode ser subdividido em pequenas tarefas, os programas
tendem a ficar menores e mais organizados;
Δ Programas são executados linha após linha, mas quando se usa sub rotina,
um desvio é realizado na execução do programa;
Δ Uma sub rotina pode ou não receber um parâmetro;
Δ Uma sub rotina pode ou não retornar um valor;
Δ Uma sub rotina pode ter variáveis locais, variáveis que são criadas apenas
para uso interno da sub rotina;
Δ Modularização do programa por meio de funções;
Δ Variáveis globais: são aquelas variáveis conhecidas por todo o programa e
são declaradas fora das funções;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Escopo de Variáveis
Δ Chamamos de escopo de variável ao conjunto de regras que determinam a
utilização de uma variável em um programa;
Δ Podemos dividir as variáveis quanto ao escopo em três tipos:
variáveis locais, parâmetros formais e variáveis globais.
Δ Variáveis locais
• São aquelas declaradas dentro do bloco de uma função.
• Não podem ser usadas ou modificadas por outras funções.
• Somente existem enquanto a função onde foi declarada estiver sendo executada.
Δ Parâmetros formais
• Os parâmetros formais de uma função também são variáveis locais da função.
Δ Variáveis Globais
• São declaradas fora de todos os blocos de funções.
• São acessíveis em qualquer parte do programa, ou seja, podem ser usadas e
modificadas por todas as- outras funções.
• Existem durante toda a execução do programa.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Escopo de Variáveis
#include <stdio.h>
//declaração de variáveis globais
//uma variável declarada aqui pode ser usada por todos
// -------------------------------------------------
void funcao1(variáveis locais de parâmetros)
{
// declaração das variáveis locais da função1
//uma variável declarada aqui SÓ pode ser usada pela funcao1
}
// ---------------- Funçao main()-------------------
int main(void)
{
//declaração das variáveis locais da main()
//uma variável declarada aqui SÓ pode ser usada pela main
return(0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Funções
Δ FUNÇÕES SEM PASSAGEM DE PARAMETROS E SEM RETORNO
• Não recebe nenhuma informação no momento de sua chamada
• Não repassa nenhum valor para quem a chamou (void)
#include <stdio.h>
void soma(){
int a, b, s; //variáveis locais
printf(“Digite dois números”);
scanf(“%d %d”, &a, &b);
s = a + b;
printf(“ a soma é %d”, s);
}
int main(){
soma();
return 0;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Funções
Δ FUNÇÕES COM PASSAGEM DE PARÂMETROS E SEM RETORNO
• Recebem valores no momento em que são chamadas
• Não devolvem nenhum valor para quem as chamou
#include <stdio.h>
void soma(int a, int b){
int s;//variável local
s = a + b;
printf(“ a soma é %d”, s);
}
int main(){
int a, b; //variáveis da main
printf(“Digite dois números”);
scanf(“%d %d”, &a, &b);
soma(a,b);
return 0;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Funções
Δ FUNÇÕES SEM PASSAGEM DE PARAMETROS E COM RETORNO
• Não recebem nenhum valor no momento em que são chamadas;
• Devolvem um valor para quem as chamou;
#include <stdio.h>
int soma(){
int s,a,b;//variáveis locais
printf(“Digite dois números”);
scanf(“%d %d”, &a, &b);
s = a + b;
return (s);
}
int main(){
int saida; //variável da main
saida=soma();
printf(“ a soma é %d”, saida);
return 0;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Funções
Δ FUNÇÕES COM PASSAGEM DE PARAMETROS E COM RETORNO
• Recebem valores no momento em que são chamadas;
• Devolvem um valor para quem as chamou;
#include <stdio.h>
int soma(int a, int b){
return (a+b);
}
int main(){
int a, b, saida; //variável local da main
printf('Digite dois números');
scanf(' %d %d ', &a, &b);
saida = soma(a, b); //chamada da função
printf(' a soma é: %d', s);
return (0);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Funções
Δ As funções devem ser escritas antes do MAIN;
Δ Se quiser escrevê-las após MAIN, deverá utilizar os protótipos de funções;
#include <stdio.h>
int soma();//protótipo da função
int main(){
int saida; //variável da main
saida=soma(a,b);
printf(“ a soma é %d”, saida);
return 0;
}
int soma(){
int s,a,b;//variáveis locais
printf(“Digite dois números”);
scanf(“%d %d”, &a, &b);
s = a + b;
return (s);
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Parâmetros
Δ PASSAGEM DE PARAMETROS POR VALOR
• Significa que a função trabalhará com cópias dos valores passados no
momento de sua chamada;
#include <stdio.h>
int soma_dobro(int a, int b);
int main(){
int x, y, res; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %d ', &x, &y);
res = soma_dobro(x, y); //chamada da sub rotina
printf(' a soma do dobro dos números %d e %d =
%d', x, y, res);
return 0;
}
int soma_dobro(int a, int b){
int soma;
a = a * 2;
b = b * 2;
soma = a + b;
return soma;
}
Quando a função chega ao fim, as
variaveis criadas são completamente
destruídas e as alterações realizadas são
perdidas. X continuara valendo 5 e y
continuara valendo 3.
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Parâmetros
Δ PASSAGEM DE PARAMETROS POR REFERENCIA
• Significa que os parâmetros passados para a função correspondem a
endereços de memória ocupados por variáveis;
• Toda vez que for necessário acessar determinado valor, isso será feito por
meio de referência, apontamento ao seu endereço de memória;
#include <stdio.h>
int soma_dobro(int a, int b);
int main(){
int x, y, res; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %d ', &x, &y);
res = soma_dobro(x, y); //chamada da sub rotina
printf(' a soma do dobro dos números %d e %d =
%d', x, y, res);
return 0;
}
int soma_dobro(int *a, int *b){
int soma;
a = a * 2;
b = b * 2;
soma = a + b;
return soma;
}
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Faça você mesmo:
Δ Crie uma função em linguagem C que receba 2 números e retorne o maior
valor;
Δ Crie uma função em linguagem C que receba 2 números e retorne o menor
valor;
Δ Crie uma função em linguagem C que receba 3 números e retorne o maior
valor, use a função da questão 1;
L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Faça você mesmo
Δ Escrever um programa em C que lê um vetor RC(10) que é o gabarito de
uma avaliação, contendo os valores 1 (letra a), 2 (letra b), 3 (letra c), 4
(letra d) e 5 (letra e). Leia, em seguida, para cada aluno – são 10 alunos –,
o número de sua matrícula e um vetor Resposta R (10). Verifique, então
para cada aluno o número de acertos e escreva a nota do aluno, sabendo
que cada questão certa vale 1,0 ponto. Se o aluno tiver 10 acertos,
acrescentar a mensagem: "PARABENS".
DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;
• http://www.cprogressivo.net/
• http://www.inf.pucrs.br/~pinho/LaproI/
• http://linguagemc.com.br/

Mais conteúdo relacionado

Semelhante a Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf

Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdfAlgoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Enio Filho
 
Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptx
zarusca
 
Algop - aula 06
Algop - aula 06Algop - aula 06
Algop - aula 06
Thiago Toscano Ferrari
 
Aula 4 aed - parte 1
Aula 4   aed - parte 1Aula 4   aed - parte 1
Aula 4 aed - parte 1
Elaine Cecília Gatto
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07
profwtelles
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
Rodrigo Piovesana
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
Carla Lee
 
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
EvelyneBorges
 
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
engenhariadecomputacao
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
Marcelo Rodrigues
 
Portugol_BCC201_2.pdf
Portugol_BCC201_2.pdfPortugol_BCC201_2.pdf
Portugol_BCC201_2.pdf
KELBYRODRIGUES2
 
Aula01
Aula01Aula01
Aula01
vdlos
 
Lista c
Lista cLista c
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
Lee Aragão
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
Maurício Moreira Neto
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
RUI VIEIRA
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5
engenhariadecomputacao
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
Verônica Veiga
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
José Volmei Dal Prá Junior
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
Marcos Souza
 

Semelhante a Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf (20)

Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdfAlgoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
Algoritmos e LP - Aula 04 - Estruturas de Repeticao - p1.pdf
 
Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptx
 
Algop - aula 06
Algop - aula 06Algop - aula 06
Algop - aula 06
 
Aula 4 aed - parte 1
Aula 4   aed - parte 1Aula 4   aed - parte 1
Aula 4 aed - parte 1
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
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
 
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
 
Introducao a Lógica de Programação
Introducao a Lógica de ProgramaçãoIntroducao a Lógica de Programação
Introducao a Lógica de Programação
 
Portugol_BCC201_2.pdf
Portugol_BCC201_2.pdfPortugol_BCC201_2.pdf
Portugol_BCC201_2.pdf
 
Aula01
Aula01Aula01
Aula01
 
Lista c
Lista cLista c
Lista c
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
 

Mais de Enio Filho

Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Enio Filho
 
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Enio Filho
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Enio Filho
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Enio Filho
 
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdfAlgoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Enio Filho
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Enio Filho
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Enio Filho
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOT
Enio Filho
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0
Enio Filho
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUC
Enio Filho
 

Mais de Enio Filho (10)

Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
 
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdfAlgoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
 
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdfAlgoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
Algoritmos e LP - Aula 06 - Estruturas de Repeticao p3 e Vetores.pdf
 
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdfAlgoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
Algoritmos e LP - Aula 00 - Introdução e Apresentação.pdf
 
Eica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOTEica 2016.1 - Identificando e rastreando itens na era do IOT
Eica 2016.1 - Identificando e rastreando itens na era do IOT
 
Eica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOTEica 2015.2 - Introdução ao IOT
Eica 2015.2 - Introdução ao IOT
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUC
 

Último

Fotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosasFotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosas
MariaJooSilva58
 
P0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdfP0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdf
Ceiça Martins Vital
 
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Luzia Gabriele
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
LuizHenriquedeAlmeid6
 
Marinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdfMarinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdf
Falcão Brasil
 
Organograma do Ministério da Defesa (MD).pdf
Organograma do Ministério da Defesa (MD).pdfOrganograma do Ministério da Defesa (MD).pdf
Organograma do Ministério da Defesa (MD).pdf
Falcão Brasil
 
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
Estuda.com
 
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdfAula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
ProfessoraSilmaraArg
 
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptxAdministração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
helenawaya9
 
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdfOs Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Falcão Brasil
 
gestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdfgestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdf
Maria das Graças Machado Rodrigues
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Falcão Brasil
 
Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024
Bibliotecas Escolares AEIDH
 
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LEDPlano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
luggio9854
 
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdfIntendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Falcão Brasil
 
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdfA Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
Falcão Brasil
 
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdfGeotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Falcão Brasil
 
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
SheylaAlves6
 
O que é o programa nacional de alimentação escolar (PNAE)?
O que é  o programa nacional de alimentação escolar (PNAE)?O que é  o programa nacional de alimentação escolar (PNAE)?
O que é o programa nacional de alimentação escolar (PNAE)?
Marcelo Botura
 

Último (20)

Fotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosasFotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosas
 
P0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdfP0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdf
 
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsxOceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
Oceano, Fonte de Vida e Beleza Maria Inês Aroeira Braga.ppsx
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
 
Marinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdfMarinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdf
 
Organograma do Ministério da Defesa (MD).pdf
Organograma do Ministério da Defesa (MD).pdfOrganograma do Ministério da Defesa (MD).pdf
Organograma do Ministério da Defesa (MD).pdf
 
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
17 Coisas que seus alunos deveriam saber sobre TRI para melhorar sua nota no ...
 
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdfAula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
 
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptxAdministração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
 
Festa dos Finalistas .
Festa dos Finalistas                    .Festa dos Finalistas                    .
Festa dos Finalistas .
 
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdfOs Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdf
 
gestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdfgestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdf
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
 
Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024
 
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LEDPlano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
 
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdfIntendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
 
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdfA Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
A Industria Brasileira de Defesa - Situação Atual e Perspectivas de Evolução.pdf
 
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdfGeotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
 
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
28 - Agente de Endemias (40 mapas mentais) - Amostra.pdf
 
O que é o programa nacional de alimentação escolar (PNAE)?
O que é  o programa nacional de alimentação escolar (PNAE)?O que é  o programa nacional de alimentação escolar (PNAE)?
O que é o programa nacional de alimentação escolar (PNAE)?
 

Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf

  • 1. Aula 09 Linguagem C Ênio Prates Vasconcelos Filho Faculdades Alfa
  • 2. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tópicos Δ Laços de repetição: • For; • While; Δ Estruturas: • Vetores; • Matrizes; Δ Funções; Δ Exercícios;
  • 3. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – for Δ As expressões inicial e incremento ou decremento são, em geral, atribuições à variável de controle e condição é uma expressão relacional que envolve a mesma variável de controle. Δ A semântica do comando “for” é: • A expressão inicial é avaliada, consistindo geralmente na inicialização de uma variável de controle; • Em seguida, é avaliada a condição: ose a condição for verdadeira, o <bloco de comandos> é executado e, ao chegar ao delimitador } ou final do comando “for”, automaticamente se incrementa ou se decrementa a variável de controle e se retorna à avaliação da condição; • Quando a condição ficar falsa, ou seja, o incremento/decremento fizer a variável de controle chegar no limite da condição, o comando de repetição é finalizado;
  • 4. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – for Δ Exemplo: Façamos um programa que imprima os caracteres da tabela ASCII padrão (entre o número 32 e o 127) e sua representação decimal; #include <stdio.h> int main(void) { int i; for (i = 32; i <= 126; i++) { printf("%c [%d]n", i, i); } return 0; }
  • 5. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – While Δ O comando while permite que um certo trecho de programa seja executado ENQUANTO uma certa condição for verdadeira. A forma do comando while é a seguinte: while (condição){ // comandos a serem repetidos // comandos a serem repetidos } // comandos após o 'while'
  • 6. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – While Δ O funcionamento é o seguinte: • Testa a condição; o Se a condição for falsa então pula todos os comandos do bloco subordinado ao while e passa a executar os comandos após o bloco do while. o Se condição for verdadeira então executa cada um dos comandos do bloco subordinado ao while. o Após executar o último comando do bloco do while volta ao passo 1.
  • 7. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – While Δ O comando while deve ser usado sempre que: • Não soubermos exatamente quantas vezes o laço deve ser repetido oO usuário vai determinar quantas vezes o laço será repetido, através da condição; • O teste deva ser feito antes de iniciar a execução de um bloco de comandos; • Houver casos em que o laço não deva ser repetido nenhuma vez.
  • 8. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – While Δ Exemplo 01: um programa que imprima a expressão “repetindo...”, enquanto o usuário não digitar um número diferente de 0; #include <stdio.h> int main (){ int contador; int continua; continua = 10; contador = 0; while (continua != 0) // enquanto for igual a '0' { // comandos a serem repetidos printf("Repetindo....n"); contador = contador + 1; printf("Tecle '0' se deseja sairn"); scanf("%d",&continua); } if (contador == 0) printf("O bloco NAO foi repetido."); else printf("O bloco foi repetido %d vezes", contador); return(0); }
  • 9. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Laços de Repetição – While Δ Exemplo 02: Um programa que calcula a idade média de um grupo de pessoas. A finalização da entrada de números é dada por um -1: #include <stdio.h> int main (){ float soma, quantidade; int idade; float media; soma = 0.0; quantidade = 0.0; idade = 0; while (idade != -1) { // comandos a serem repetidos printf("Idade da pessoa %.0f. (tecle -1 se quiser encerrar).n",quantidade+1); scanf("%d", &idade); if (idade >=0) { soma = soma + idade; quantidade = quantidade + 1; } } // Faz o calculo da media de idade if (quantidade >0) { media = soma / quantidade; printf("A media de idade das %.0f pessoas eh: %5.2f", quantidade,media); }else{ printf("Nenhum dado foi informado."); } return(0); }
  • 10. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Faça você mesmo 1. Elabore, um programa que efetue o cálculo da fatorial de um número inserido pelo usuário. Em seguida, imprima na tela o valor calculado. No final, pergunte ao usuário se ele deseja inserir um novo valor. Caso o usuário insira um número negativo, termine a repetição. Se o usuário inserir o número 0, indique que o fatorial é 1. Relembrando: Fatorial de 5: 5! = 5*4*3*2*1; Fatorial de 0: 0! = 1; Fatorial de -2: -2! = Não existe; 2. Faça um programa em C que leia um conjunto de números (X) e imprima sua soma (Soma) e sua média (Media). Admita que o valor 9999 é utilizado como condição para fim de leitura. Ex.: 1, 2, 3 => Soma=6 Media=2
  • 11. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores Δ Introdução: • Um vetor é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória; • A individualização de cada variável de um vetor é feita através do uso de índices; • Os Vetores são matrizes de 1 só dimensão; • Os índices começam em zero; • A quantidade de elementos que o vetor pode armazenar deve ser um valor inteiro fixo Δ Declaração de matrizes: • int Vetor[5]; // declara um vetor de inteiros de 5 posições, começando na posição 0 até a posição 4 • char palavra[10]; // declara um vetor de char (string) de 10 posições, começando na posição 0 até a posição 9;
  • 12. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores Δ Exemplo: int tam=5; char z[tam]; //Começa na posição zero e termina na posição 4 Δ ATRIBUIÇÃO vet[0]=1; //atribui o valor 1 à primeira posição do vetor X[3] = ‘b’; //atribui a letra b à quarta posição do vetor
  • 13. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores Δ PREENCHENDO for(i=0; i<10; i++) scanf(“%d”, &vetor[i]); Δ MOSTRANDO OS VALORES for(i=0; i<10; i++) printf(“%d”, vetor[i]);
  • 14. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Vetores Δ Exemplo: leia 10 números inteiros positivos e armazene em um vetor. Em seguida, determine e imprima o maior valor do vetor; #include <stdio.h> int main (){ int v[10], i, maior = 0,menor; for (i=0; i<10; i++){ scanf("%d", &v[i]); } for (i=0; i<10; i++){ if(i=0){ menor=v[i]; }else{ if (v[i] < menor){ maior = v[i]; } } printf("maior = %dn", menor); return (0); }
  • 15. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ Introdução • Variáveis homogêneas bidimensionais ou multidimensionais • Pode ter até 12 dimensões de acordo com o padrão ANSI • Para cada dimensão, um índice deve ser usado Δ DECLARAÇÃO float x[2][6]; //uma matriz com duas linhas e seis colunas char mat[4][3]; //uma matriz com quatro linhas e tres colunas float y[2][4][3]; //uma matriz com duas linhas, quatro colunas e três profundidades
  • 16. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes int mat[4][3]; //uma matriz com quatro linhas e três colunas 0,0 1,0 2,0 3,0 0,1 1,1 2,1 3,1 0,2 1,2 2,2 3,2 Mat[4][3] Linhas Colunas
  • 17. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ ATRIBUIÇÃO X[1][4] = 5; //atribui o valor 5 ao espaço identificado pelo índice 1 (linha 2) e índice 4 (coluna 5) Mat[3][2] = ‘d’; //atribui o valor d à quarta linha e à terceira coluna Y[0][3][1] = 12; //atribui o valor 12 à primeira linha, quarta coluna e segunda profundidade.
  • 18. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ PREENCHENDO int mat[4][3]; for(i=0; i<4; i++){ //linha for(j=0; j<3; j++){ //coluna scanf(“%d”, &mat[i][j] ); } } Preenche primeiro todas as colunas da linha 0 Depois todas as colunas da linha 1 E assim por diante 1 4 7 10 2 5 8 11 3 6 9 12 Mat[4][3] Linhas Colunas
  • 19. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ IMPRIMINDO int mat[4][3]; for(i=0; i<4; i++){//linha for(j=0; j<3; j++){//coluna printf( “%d ”, mat[i][j] ); } } 8 1 7 90 6 1 0 12 5 7 11 12 Mat[4][3] Linhas Colunas Itens impressos: 8 6 5 1 1 7 7 0 11 90 12 12
  • 20. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ Exemplo : algoritmo que imprima todos os itens de uma matriz e imprima a linha da matriz que está sendo impressa: for(i=0; i<4; i++){ printf( “ Elementos da linha %d ”, i); for(j=0; j<3; j++){ printf( “ %d ”, x[ i , j ] ); } }
  • 21. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ Exemplo: algoritmo que imprima todos os itens de uma matriz e imprima a coluna da matriz que está sendo impressa: for(j=0; j<4; j++){ printf(“Elementos da coluna %d”, j); for(i=0; i<3; i++){ printf( “ %d ”, x[ i][j ] ); } } MEMÓRIA TELA j i 0 Elementos da coluna 0 0 0 4 0 1 5 0 2 1 1 Elementos da coluna 1 1 0 6
  • 22. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Matrizes Δ Exemplo: leia os elementos de uma matriz 3x4 de números float. Em seguida, imprima os elementos no formato abaixo: X X X X X X X X X X X X #include <stdio.h> int main() { float m[3][4]; int i, j; for (i=0; i<3; i++){ for (j=0; j<4; j++) scanf("%f", &m[i][j]); } for (i=0; i<3; i++){ for (j=0; j<4; j++){ printf(“%f", m[i][j]); } printf("n"); } return (0); }
  • 23. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Faça você mesmo Δ Faça um algoritmo que copie o conteúdo de um vetor em um segundo vetor; Δ Faça um algoritmo que some o conteúdo de dois vetores e armazene o resultado em um terceiro vetor. Δ Crie um programa em C que peça 10 números, armazene eles em um vetor e diga qual elemento é o maior, qual é a média; Δ Crie um programa em C que peça 10 números, armazene eles em um vetor e diga quantos elementos são maiores que a média; Δ Faça um algoritmo que leia uma matriz mat 2 x 3 e imprima na tela a soma de todos os elementos da matriz mat; Δ Escreva um algoritmo que lê uma matriz M(5,5) e calcule e imprima na tela as somas: a) da linha 4 de M; b) da coluna 2 de M; c) De todos os elementos de M;
  • 24. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Funções (sub rotinas) Δ Funções são chamadas de sub rotinas ou subprogramas; • São blocos de instruções que realizam tarefas específicas; Δ Como o problema pode ser subdividido em pequenas tarefas, os programas tendem a ficar menores e mais organizados; Δ Programas são executados linha após linha, mas quando se usa sub rotina, um desvio é realizado na execução do programa; Δ Uma sub rotina pode ou não receber um parâmetro; Δ Uma sub rotina pode ou não retornar um valor; Δ Uma sub rotina pode ter variáveis locais, variáveis que são criadas apenas para uso interno da sub rotina; Δ Modularização do programa por meio de funções; Δ Variáveis globais: são aquelas variáveis conhecidas por todo o programa e são declaradas fora das funções;
  • 25. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Escopo de Variáveis Δ Chamamos de escopo de variável ao conjunto de regras que determinam a utilização de uma variável em um programa; Δ Podemos dividir as variáveis quanto ao escopo em três tipos: variáveis locais, parâmetros formais e variáveis globais. Δ Variáveis locais • São aquelas declaradas dentro do bloco de uma função. • Não podem ser usadas ou modificadas por outras funções. • Somente existem enquanto a função onde foi declarada estiver sendo executada. Δ Parâmetros formais • Os parâmetros formais de uma função também são variáveis locais da função. Δ Variáveis Globais • São declaradas fora de todos os blocos de funções. • São acessíveis em qualquer parte do programa, ou seja, podem ser usadas e modificadas por todas as- outras funções. • Existem durante toda a execução do programa.
  • 26. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Escopo de Variáveis #include <stdio.h> //declaração de variáveis globais //uma variável declarada aqui pode ser usada por todos // ------------------------------------------------- void funcao1(variáveis locais de parâmetros) { // declaração das variáveis locais da função1 //uma variável declarada aqui SÓ pode ser usada pela funcao1 } // ---------------- Funçao main()------------------- int main(void) { //declaração das variáveis locais da main() //uma variável declarada aqui SÓ pode ser usada pela main return(0); }
  • 27. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tipos de Funções Δ FUNÇÕES SEM PASSAGEM DE PARAMETROS E SEM RETORNO • Não recebe nenhuma informação no momento de sua chamada • Não repassa nenhum valor para quem a chamou (void) #include <stdio.h> void soma(){ int a, b, s; //variáveis locais printf(“Digite dois números”); scanf(“%d %d”, &a, &b); s = a + b; printf(“ a soma é %d”, s); } int main(){ soma(); return 0; }
  • 28. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tipos de Funções Δ FUNÇÕES COM PASSAGEM DE PARÂMETROS E SEM RETORNO • Recebem valores no momento em que são chamadas • Não devolvem nenhum valor para quem as chamou #include <stdio.h> void soma(int a, int b){ int s;//variável local s = a + b; printf(“ a soma é %d”, s); } int main(){ int a, b; //variáveis da main printf(“Digite dois números”); scanf(“%d %d”, &a, &b); soma(a,b); return 0; }
  • 29. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tipos de Funções Δ FUNÇÕES SEM PASSAGEM DE PARAMETROS E COM RETORNO • Não recebem nenhum valor no momento em que são chamadas; • Devolvem um valor para quem as chamou; #include <stdio.h> int soma(){ int s,a,b;//variáveis locais printf(“Digite dois números”); scanf(“%d %d”, &a, &b); s = a + b; return (s); } int main(){ int saida; //variável da main saida=soma(); printf(“ a soma é %d”, saida); return 0; }
  • 30. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tipos de Funções Δ FUNÇÕES COM PASSAGEM DE PARAMETROS E COM RETORNO • Recebem valores no momento em que são chamadas; • Devolvem um valor para quem as chamou; #include <stdio.h> int soma(int a, int b){ return (a+b); } int main(){ int a, b, saida; //variável local da main printf('Digite dois números'); scanf(' %d %d ', &a, &b); saida = soma(a, b); //chamada da função printf(' a soma é: %d', s); return (0); }
  • 31. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Tipos de Funções Δ As funções devem ser escritas antes do MAIN; Δ Se quiser escrevê-las após MAIN, deverá utilizar os protótipos de funções; #include <stdio.h> int soma();//protótipo da função int main(){ int saida; //variável da main saida=soma(a,b); printf(“ a soma é %d”, saida); return 0; } int soma(){ int s,a,b;//variáveis locais printf(“Digite dois números”); scanf(“%d %d”, &a, &b); s = a + b; return (s); }
  • 32. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Parâmetros Δ PASSAGEM DE PARAMETROS POR VALOR • Significa que a função trabalhará com cópias dos valores passados no momento de sua chamada; #include <stdio.h> int soma_dobro(int a, int b); int main(){ int x, y, res; //variável local do programa principal printf('Digite dois números'); scanf(' %d %d ', &x, &y); res = soma_dobro(x, y); //chamada da sub rotina printf(' a soma do dobro dos números %d e %d = %d', x, y, res); return 0; } int soma_dobro(int a, int b){ int soma; a = a * 2; b = b * 2; soma = a + b; return soma; } Quando a função chega ao fim, as variaveis criadas são completamente destruídas e as alterações realizadas são perdidas. X continuara valendo 5 e y continuara valendo 3.
  • 33. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Parâmetros Δ PASSAGEM DE PARAMETROS POR REFERENCIA • Significa que os parâmetros passados para a função correspondem a endereços de memória ocupados por variáveis; • Toda vez que for necessário acessar determinado valor, isso será feito por meio de referência, apontamento ao seu endereço de memória; #include <stdio.h> int soma_dobro(int a, int b); int main(){ int x, y, res; //variável local do programa principal printf('Digite dois números'); scanf(' %d %d ', &x, &y); res = soma_dobro(x, y); //chamada da sub rotina printf(' a soma do dobro dos números %d e %d = %d', x, y, res); return 0; } int soma_dobro(int *a, int *b){ int soma; a = a * 2; b = b * 2; soma = a + b; return soma; }
  • 34. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Faça você mesmo: Δ Crie uma função em linguagem C que receba 2 números e retorne o maior valor; Δ Crie uma função em linguagem C que receba 2 números e retorne o menor valor; Δ Crie uma função em linguagem C que receba 3 números e retorne o maior valor, use a função da questão 1;
  • 35. L I N G U A G E M C ALGORITMOS - 02/2015 – ÊNIO FILHO Faça você mesmo Δ Escrever um programa em C que lê um vetor RC(10) que é o gabarito de uma avaliação, contendo os valores 1 (letra a), 2 (letra b), 3 (letra c), 4 (letra d) e 5 (letra e). Leia, em seguida, para cada aluno – são 10 alunos –, o número de sua matrícula e um vetor Resposta R (10). Verifique, então para cada aluno o número de acertos e escreva a nota do aluno, sabendo que cada questão certa vale 1,0 ponto. Se o aluno tiver 10 acertos, acrescentar a mensagem: "PARABENS".
  • 36. DÚVIDAS? Contatos: E-mail: enio.filho@alfa.br Skype: eniopvf Twitter: eniopvf Bibliografia: • MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN 857194718; • FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN 9788576050247; • http://www.cprogressivo.net/ • http://www.inf.pucrs.br/~pinho/LaproI/ • http://linguagemc.com.br/