SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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 Aula C Linguagem

Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptxzarusca
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07profwtelles
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla 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ãoEvelyneBorges
 
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 6engenhariadecomputacao
 
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çãoMarcelo Rodrigues
 
Aula01
Aula01Aula01
Aula01vdlos
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticaoLee Aragão
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI 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 5engenhariadecomputacao
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++Verônica Veiga
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_javaMarcos Souza
 

Semelhante a Aula C Linguagem (20)

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
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 

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.pdfEnio 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.pdfEnio 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.pdfEnio 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.pdfEnio 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.pdfEnio 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.pdfEnio 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 IOTEnio 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 IOTEnio Filho
 
Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Eica 2016.2 - Industria 4.0
Eica 2016.2 - Industria 4.0Enio Filho
 
Iot - identificando e rastreando - PUC
Iot  - identificando e rastreando - PUCIot  - identificando e rastreando - PUC
Iot - identificando e rastreando - PUCEnio 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

CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Ácidos Nucleicos - DNA e RNA (Material Genético).pdf
Ácidos Nucleicos - DNA e RNA (Material Genético).pdfÁcidos Nucleicos - DNA e RNA (Material Genético).pdf
Ácidos Nucleicos - DNA e RNA (Material Genético).pdfJonathasAureliano1
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila RibeiroMarcele Ravasio
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfAlissonMiranda22
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 

Último (20)

CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Ácidos Nucleicos - DNA e RNA (Material Genético).pdf
Ácidos Nucleicos - DNA e RNA (Material Genético).pdfÁcidos Nucleicos - DNA e RNA (Material Genético).pdf
Ácidos Nucleicos - DNA e RNA (Material Genético).pdf
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdf
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 

Aula C Linguagem

  • 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/