Sei sulla pagina 1di 119

Laboratório e

Técnicas de
Programação de
Computadores I

Mecatrônica Industrial
Prof. MSc Diego R. Moraes
diegorafaelmoraes@gmail.com

Download do conteúdo da disciplina


https://sites.google.com/site/diegorafaelmoraes/downloads
Agenda

• Conceitos
– Computador
– Programas
– Linguagem
– Linguagem de programação
– Algoritmo

2
1.1. Introdução: Conceitos

Qual a principal função do computador?

• Realizar o processamento de dados


• Transformando em informações

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 3
1.1. Introdução: Conceitos

Como o computador processa os dados e os


transforma em informações?

• São necessários os programas

• Cada programa realiza tarefas de


acordo com a necessidade

• Os programas são escritos em


linguagem de programação

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 4
1.1. Introdução: Conceitos

O que é linguagem?

• É o meio pelo qual o homem comunica suas


idéias e sentimentos pela fala, escrita e gestos

Qual o objetivo?
• Estabelecer uma comunicação
• Troca de informações

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 5
1.1. Introdução: Conceitos

O que é linguagem de programação?

• É um método padronizado que permite ao


programador construir programas

• É a forma pela qual os humanos:


• Conversam com as máquinas
• Trocando dados e informações

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 6
1.1. Introdução: Conceitos

Para que serve a linguagem de programação?

• Controlar as operações do computador para


solucionar problemas do mundo real

• Isto facilita as rotinas dos humanos


• Aumento na velocidade
• Aumento da precisão

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 7
1.1. Introdução: Conceitos

O que é algoritmo?

• “É uma sequência de passos que visa atingir um


objetivo bem definido.” (Forbelone, 2005)

• “Sequência de passos que deve


ser seguida para a realização de
uma tarefa.” (Ascencio e Edilene,
2002)

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 8
1.1. Introdução: Conceitos

O que é algoritmo?

• É uma sequência de passos finitos e ordenados


para realizar uma tarefa
• Ou seja, conjunto de instruções

• Ex: receita de bolo

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 9
Exercício (7 minutos)

– Algoritmo para troca de pneu do carro:


• descreva os passos necessários

– Dicas:
• analogia a receita de bolo
• passo-a-passo
10
SLIDE DO PROFESSOR
Algoritmo para troca de pneu do carro:
• Pobre em detalhes

1) Pare o carro
2) Peque o pneu reserva
3) Remova o pneu furado
4) Troque pelo pneu reserva
5) Ligue o carro

11
SLIDE DO PROFESSOR
Algoritmo para troca de pneu do carro:
• Exagerado em detalhes

1) Olhe no retrovisor 11) Peque o “macaco”


2) Diminua a velocidade 12) Peque a chave-roda
3) Siga até o acostamento 13) Vá até o pneu furado
4) Pare o carro 14) Remova 1º parafuso
5) Desligue o carro .
6) Ligue o pisca-alerta .
7) Abra a porta 30) Troque o pneu
8) Sai do carro .
9) Abra o porta-malas .
10) Peque o pneu reserva 50) Ligue o carro
12
SLIDE DO PROFESSOR
Algoritmo para troca de pneu do carro:
• Equilíbrio em detalhes

1) Siga até o acostamento


2) No porta-malas pegue o necessário
3) Eleve o carro
4) Troque pelo pneu reserva
5) Abaixe o carro
6) Guarde no porta-malas os itens
7) Ligue o carro

13
Agenda da aula

• Programa
• Paradigma
• Paradigma de Programação
– Estruturado
– Imperativo
– Funcional
– Orientado a eventos
– Orientado a objetos

14
1.1. Introdução: Conceitos

O que é programa?

• É um conjunto de instruções (algoritmo)


• Computador entende para realizar tarefas

• Estas instruções são:


• Escritas em linguagem de
programação
• Convertidas em linguagem de
máquina
http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 15
1.1. Introdução: Conceitos

O que é paradigma?
• Significa modelo ou padrão
• Exemplo a ser seguido em uma situação

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 16
Mudar paradigmas é difícil

Duração: 0’00” – 2’39”

C - 436

17
1.1. Introdução: Conceitos

O que é paradigma de programação?


• Metodologia ou filosofia
• Empregada no desenvolvimento de um
programa

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 18
1.1. Introdução: Conceitos

• Paradigmas de programação

– Diferentes formas de
• organizar/estruturar um programa

– Delimitam conjuntos de linguagens


• Ex: paradigma O.O à C++, Java, C#

– Uma linguagem pode suportar múltiplos


paradigmas
19
1.1. Introdução: paradigmas

• Estruturado

– Programas são construídos com estruturas:


• Sequenciais, Condicionais e Repetição

– Objetivo:
• Códigos claros e simples

– Ex: C, Pascal etc

20
1.1. Introdução: paradigmas

• Imperativo

– Programas são construídos com:


• Mudança de estado

– Objetivo:
• Ação/comando altera o estado do programa

– Ex: Basic, C, Fortran, Pascal etc

21
1.1. Introdução: paradigmas

• Funcional

– Programas são construídos com:


• Avaliação de funções matemáticas

– Objetivo:
• Evitar os estados
• Uso mais acadêmico, mas permite comercial

– Ex: Lisp, Scala, R (estatístico) etc


22
1.1. Introdução: paradigmas

• Orientado a eventos

– Programas são construídos com:


• Eventos disparados

– Objetivo:
• Executar uma tarefa após ocorrer uma
interação do usuário (teclado, mouse etc)

– Ex: Object Pascal (Delphi), Java, C++ etc


23
1.1. Introdução: paradigmas

• Orientado a objetos

– Programas são construídos por:


• Classes e objetos

– Objetivo:
• Reutilização de código
• Herança, polimorfismo etc

– Ex: C++, Java, C# etc


24
1.1. Introdução: Conceitos

Qual o melhor paradigma?


- Depende do tipo de problema

Qual a melhor linguagem?


- Depende do tipo de problema

Qual o nosso foco?


- Estruturado
- Portugol e C

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 25
Como colocar uma girafa na
geladeira

Duração:

C – 924, 925, 926

26
Agenda da aula

• Histórico do computador
– Pascalina
– Máquina Analítica
– ENIAC

27
1.1. Introdução: Conceitos

Como surgiram as linguagens de


programação?

Histórico:
1.2. Evolução das linguagens
de programação

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 28
1.2. Histórico: Pascalina
• 1642: Contador Mecânico de Blaise Pascal

http://delta.cs.cinvestav.mx
Evolução do ábaco; Contador mecânico; Adição e subtração
29
1.2. Histórico: Máquina analítica

http://helmutsy.homestead.com
• 1823: Máquina analítica de Charles Babbage
Lady Ada Lovelace

http://www.dma.eui.upm.es
Computador mecânico “moderno” de uso geral
30
1.2. Histórico: ENIAC

• Electronic Numerical Integrator and Computer


• Projetado por John Mauchly e John P. Eckert
• Primeiro computador eletrônico – 1946:
– 18000 válvulas; 30 toneladas;
– Cabos; relês, chaves; lâmpadas (resultado);
• Funcionalidade:
– Calculadora simples de hoje (não SO)
– Cálculos balísticos (2ª Guerra)
31
.
1.2. Histórico: ENIAC

32

http://www.techguru.com.br
História do computador em
minutos

Duração: 0’00” – 4’57”

C - 1940

33
Agenda da aula

• Fundamentos da Linguagem C
– Ambiente de Desenvolvimento
– Variáveis e Tipos de Dados

34
5.1. Programação Estruturada

O que é paradigma de programação


estruturado?
• Fundamentado em 3 estruturas básicas:
• sequencial, condicional e repetição

http://en.hdyo.org
• Tem como principal características:
• clareza e qualidade do código
• Modularização a partir do uso de
procedimentos ou funções

• Exemplos: Ada, C, Pascal etc


35
5.2. Fundamentos da Linguagem C

• Criada por Dennis Ritchie na década de 70

http://blog.hostdime.com.br
• Roda em todos SO’s (original para Unix)
• Aplicações comerciais e acadêmicas
36
5.2.1. IDE
• Integrated Development Environment ou
Ambiente de Desenvolvimento Integrado
– É um conjunto de ferramentas para
• codificação, depuração e testes de programas

• Exemplos:
– Code::Blocks: C e C++, gratuito
– Dev-C++: C e C++, gratuito
– Microsoft Visual Studio: C, C++, VB .NET, C#
• versão gratuita (Express) ou paga (Enterprise)

37
5.2.1. IDE
• Exemplos:
– Code::Blocks: C e C++, gratuito

38
5.2.1. IDE
• Exemplos:
– Dev-C++: C e C++, gratuito

39
5.2.1. IDE
• Exemplos:
– Microsoft Visual Studio: C, C++, VB .NET, C#

40
5.2.1. Linguagem C é ‘Case Sensitive’
O que é case sensitive?

• É a diferenciação de caracteres

http://en.hdyo.org
maiúsculos e minúsculos

• Ex.: diferença entre as


variáveis:
• “IDADE”
• “idade”
• “Idade” 41
5.2.1. IDE

• Demonstrar erro de compilação


– Alteração: printf à PRINTF

42
5.2.2. Variáveis e Tipos de Dados

• int:
– Para inteiros de 4 bytes (+, - ou 0)
– Com sinal (-2.147.483.648 a +2.147.483.647)
– Sem sinal (0 a 4.294.967.295)

• Curiosidade: por que esses valores?


1 byte = 8 bits então 4 bytes = 32 bits

Computador trabalha com base binária


Portanto: 232 = 4.294.967.296 -1 (pelo 0)
43
5.2.2. Variáveis e Tipos de Dados

• char:
– Para caractere de 1 byte (‘a’, ‘5’, ‘$’)
– Com sinal (-128 a +127)
– Sem sinal (0 a 255)

• Curiosidade: por que esses valores?


1 byte = 8 bits então 28 = 256 –1 (pelo 0)

Tabela ASCII faz a conversão de nº para


caractere. Exs:
A = 65, B = 66, ..., a = 97, b = 98, ...
44
5.2.2. Variáveis e Tipos de Dados
• float:
– números reais de 4 bytes com precisão de 6
casas decimais (pi = 3,141592)
– Faixa de Valores: +/- 3,4 E (+/- 38)

• double:
– números reais de 8 bytes com precisão de 10
casas decimais (pi = 3,141592653589793)
– Faixa de Valores: +/- 1,7 E (+/- 308)

• Os tamanhos dos tipos podem variar dependendo


do sistema computacional e/ou compilador 45
5.2.2. Variáveis e Tipos de Dados

• Declaração de variáveis
SINTAXE:
EXEMPLO:
tipo_dado nome_variavel;
• Regras, não é permitido: int x;
– acentos (opcão) char opcao;
– espaços (media final) float soma;
– iniciar por nº (1valor) double media;
– especiais (tot@i$)

46
5.2.2. Variáveis e Tipos de Dados
unid5_exemplo02.c – Código 1

47
5.2.2. Variáveis e Tipos de Dados

48
5.2.2. Variáveis e Tipos de Dados

49
5.2.2. Variáveis e Tipos de Dados

unid5_exemplo03.c – Código 2

50
5.2.2. Variáveis e Tipos de Dados

51
Exercício 1/2
Afirmações (certas/erradas) sobre declaração de variáveis:
I) char sexo
II) int 2nota
III) float Valor
IV) double valor
Qual alternativa abaixo apresenta afirmações erradas
sobre declaração de variáveis?
a) Apenas II
b) Apenas III
c) Apenas IV
d) Apenas II e III
e) Apenas III e IV
52
Resposta 1/2
Afirmações (certas/erradas) sobre declaração de variáveis:
I) char sexo correto
II) int 2nota errado
III) float Valor correto (case sensitive)
IV) double valor correto (case sensitive)
Qual alternativa abaixo apresenta afirmações erradas
sobre declaração de variáveis?
a) Apenas II
b) Apenas III
c) Apenas IV
d) Apenas II e III
e) Apenas III e IV 53
Exercício 2/2
Um desenvolvedor precisa escrever um programa em
linguagem de programação C para cadastro de pacientes de
um consultório de dentista. Ao realizar o levantamento de
requisitos, o desenvolvedor identificou todas informações
essenciais para serem armazenadas no programa.
No momento em que estava projetando o programa, precisou
converter essas informações para variáveis:
código do paciente, sexo e idade.
Na fase de implementação, ao declarar tais variáveis, quais os
tipos de variáveis devem ser definidas, respectivamente?
a) int, string, int
b) float, char, int
c) int, char, int
d) float, string, int
e) int, int, int
54
Resposta 2/2
Um desenvolvedor precisa escrever um programa em
linguagem de programação C para cadastro de pacientes de
um consultório de dentista. Ao realizar o levantamento de
requisitos, o desenvolvedor identificou todas informações
essenciais para serem armazenadas no programa.
No momento em que estava projetando o programa, precisou
converter essas informações para variáveis:
código do paciente, sexo e idade.
Na fase de implementação, ao declarar tais variáveis, quais os
tipos de variáveis devem ser definidas, respectivamente?
a) int, string, int
b) float, char, int
c) int, char, int
d) float, string, int
e) int, int, int
55
Agenda da aula

• Fundamentos da Linguagem C
– Comandos de Entrada e Saída
– Operadores e Expressões
– Estruturas Condicionais
– Estruturas de Repetição
– Modularização

56
5.2.3. Comandos de Entrada e Saída

• Pertencem a biblioteca stdio.h


#include stdio.h

• Comando de Entrada: scanf


SINTAXE:

scanf ( “%especificador”, &variável );

Especificador %i %c %f %lf
Tipo de Dado int char float double
57
5.2.3. Comandos de Entrada e Saída
• Comando de Saída: printf
SINTAXE:
printf (“Texto: %especificador”, variável );

EXEMPLOS
scanf (“%i”, &idade);

printf (“Idade: %i \n”, idade);

58
5.2.3. Comandos de Entrada e Saída
unid5_exemplo04.c – Código 3 – Soma 2 valores

59
5.2.3. Comandos de Entrada e Saída

60
5.2.3 – Comandos de Entrada Saída
CARACTERE SIGNIFICADO
\a aviso sonoro
\b retrocesso

http://homepages.dcc.ufmg.br
\f avanço de formulário
\n nova linha
retorno do carro (sem
\r
alimentação de linha)
\t tabulação horizontal
\v tabulação vertical
\\ caractere de barra invertida
\' apóstrofe
\" aspas
\? interrogação
\nnn valor ASCII em octal
\xnnn valor ASCII em hexadecimal
61
5.2.3 – Comandos de Entrada Saída
ESPECIFICADOR VALOR
%o inteiro em formato octal
%x
inteiro em formato hexadecimal

http://homepages.dcc.ufmg.br
%X
%ui unsigned int
%ld long int
%e
float em formato exponencial
%E
%g float. C escolhe melhor maneira de
%G exibição entre normal e exponencial
%s string
%p endereço de um ponteiro
quantos caracteres a função printf
%n exibiu
62
5.2.3 – Comandos de Entrada Saída
SINTAXE EFEITO
exibe valor com um mínimo de 5
printf (" %5d ",valor);

http://homepages.dcc.ufmg.br
caracteres
exibe valor com um mínimo de 5
printf(" %05d ",valor); caracteres precedendo-o com
zeros
exibe um valor octal precedido
#%o
de 0 (zero)
exibe um valor hexadecimal
#%x
precedido de 0x

• Printf(" %5.3f ", valor);


– Exibe valor com um mínimo de 5 caracteres e
com 3 dígitos a direita do ponto decimal
63
Exercício 1/2

Escreva em C os comandos de E/S das variáveis:


int matricula; float altura; char sexo

Lembrando:

SINTAXE:
scanf ( “%especificador”, &variável );
printf (“Texto: %especificador”, variável );

Especificador %i %c %f %lf
Tipo de Dado int char float double

64
Resposta 1/2

Escreva em C os comandos de E/S das variáveis:


int matricula; float altura; char sexo

scanf ( “%i”, &matricula );


printf (“A matricula eh: %i”, matricula );

scanf ( “%f”, &altura );


printf (“A altura eh: %f”, altura );

scanf ( “%c”, &sexo );


printf (“O sexo eh: %c”, sexo );

65
5.2.4. Operadores e Expressões
• Operadores Aritméticos: soma (+), subtração (-),
multiplicação (*), divisão (/) e módulo (% é o resto da divisão)

y = x*x – 3*x + 1/3; // x=1

• Operadores Relacionais: menor (<), maior (>), igual (==),


menor ou igual (<=), maior ou igual (>=), diferente (!=)
y = a == b; //a=1 e b=2

• Operadores Lógicos: negação (!), E (&&), OU (||)

y = a && b; //a=1 e b=0

66
Aviso do Amigo!

Para operações
relacionais e
condicionais em C,
o resultado é
sempre 0 ou 1!

Importante:
Porque não existe tipo de dado booleano em C
67
5.3. Estruturas Condicionais: if
if (equivalente ao ‘se’ no VisuAlg)
SINTAXE:
if (condicao)
{
comandos;
}
else if (condicao)
{
comandos;
}
else
{
comandos;
}
68
5.3. Estruturas Condicionais: switch
switch (equivalente ao ‘escolha’ no VisuAlg)
SINTAXE:
switch (variavel)
{
case 1:
comandos;
break;
case 2:
comandos;
break;
default:
comandos;
}
69
Exercício 2/2
Qual a saída do código abaixo?
Para num abaixo:
a) num=9 b) num=12 c) num=0 d) num= -10

if( num % 2 == 0 )
printf( “Resultado: %d”, num / 2 );
else
printf( “Resultado: %d”, num % 2 );

70
Resposta 2/2
Qual a saída do código abaixo?
Para num abaixo:
a) num=9 b) num=12 c) num=0 d) num= -10
if( num % 2 == 0 )
printf( “Resultado: %d”, num / 2 );
else
printf( “Resultado: %d”, num % 2 );

a) Resultado: 1 9/2 = 4 e resto 1


b) Resultado: 6 12/2 = 6 e resto 0
c) Resultado: 0 0/2 = 0 e resto 0
d) Resultado: -5 -10/2 = -5 e resto 0
Portanto: Se é par faz a / Se é impar faz %
71
5.4. Estruturas de Repetição: for
for (equivalente ao ‘Para’ no VisuAlg)
SINTAXE:
for (inicialização; condição; atualização)
{
comandos;
}

EXEMPLO: tabuada do 10
for ( i = 1; i <= 10; i++ ) //num=10
{
printf( “%i x %i = %i \n”, i, num, (i*num));
}
72
5.4. Estruturas de Repetição: while
while (equivalente ao ‘Enquanto’ no VisuAlg)
SINTAXE:
while (condição)
{
comandos;
}

EXEMPLO: tabuada do 10

while (i <= 10) //num=10


{
printf( “%i x %i = %i \n”, i, num, (i*num));
i++;
}
73
5.4. Estruturas de Repetição: do while
do while (equivalente ao ‘Faça...Enquanto’ no
VisuAlg)
SINTAXE:
do{
comandos;
}while( condicão );

EXEMPLO: tabuada do 10
do //num=10 e i=1
{
printf( “%i x %i = %i \n”, i, num, (i*num));
i++;
} while (i <= 10);

74
5.5. Modularização

• Serve para:
–organizar o código-fonte
–facilitar a manutenção
–reutilizar código

• É feita com o uso de:


–funções
• que podem ou não retornar valores

75
5.5. Modularização: sintaxe de função
Toda a função deve ter Os argumentos
um tipo (char, int), o (parâmetros) indicam
qual indicará o tipo de o tipo e quais valores
valor de retorno serão enviados para
serem manipulados

<tipo> nome_da_funcao (<tipo> arg1, ..., <tipo> argN)


{

//corpo da função

return valor_de_retorno;

}
76
5.5. Modularização: ex. 1 de Função

• Escrever uma mensagem qualquer

void message()
{
printf(“Hello World”);
}

Não tem retorno,


portanto é
considerado um
procedimento 77
5.5. Modularização: ex. 2 de Função

• Calcula a soma de 2 números inteiros


int soma(int a, int b)
{
int c;
c = a + b;
return c;
Tem retorno, }
portanto é
considerado uma
função 78
5.5. Modularização:
invocação/Chamada
• Forma clássica para invocar uma função
–Atribuir o seu valor a uma variável
• resultado = soma(x,y)

• Usada como expressão


–O resultado da função é uma expressão
• printf(“valor da soma eh: %d”, soma(x,y));

79
Agenda
• Matriz unidimensional à vetor

– Definição
– Declaração
– Atribuição
– Leitura
– Exibição

80
Estruturas: Variável

O que é uma variável?


• Uma variável representa uma área na memória onde se
pode armazenar um valor”. (SOUZA et al., 2011, p. 75)
• Ao informar o seu tipo de dado, estabelece-se uma
regra em que naquele espaço de memória será alocado
o respectivo tipo de dado especificado

• Não é permitido armazenar vários valores,


ainda que estes sejam do mesmo tipo
• (PIVA JR. et al., 2012)

http://en.hdyo.org/assets/ask-question-2-ce96e3e01c85a38a0d39c61cfae6d42c.jpg 81
Vetor

• O vetor é uma variável composta, pois é formado por


um número finito de variáveis
• E homogêneo porque essas variáveis são de um
mesmo tipo de dado (inteiro, real, caracter ou lógico)
• É unidirecional, pois possui somente uma
dimensão, representado em linha ou em
coluna (PIVA JR. et al., 2012, p. 229)
• Seus elementos são acessados por índices
Vetor_IDADE
22 30 17 40 55
1 2 3 4 5 82
Vetor
• Se não fosse o uso de vetores
Vetor_IDADE
22 30 17 40 55
1 2 3 4 5

• Teríamos que criar variáveis individuais, Ex:


int idade1, idade2, idade3, idade4, idade5;

idade1 = 22;
idade2 = 30;
idade3 = 17;
idade4 = 40;
idade5 = 55;

• E se fossem 1000 idades???


83
Vetor: declaração
• Como declarar um vetor? Precisa de:
– Nome, tamanho e tipo

SINTAXE:

tipo VETOR[tamanho];

ONDE:
VETOR à nome do vetor
tamanho à tamanho do vetor

84
Vetor: declaração
• Como declarar um vetor? Precisa de:
– Nome, tamanho e tipo

EXEMPLO:

int vet_IDADE[5];

85
Vetor
Declaração
Linguagem C

tipo nomeDoVetor[tamanhoDoVetor];

Linguagem C
/* Vetor para guardar 10 notas */

/* Vetor para guardar o sexo de 50 pessoas */

/* Vetor para armazenar o valor do salario de 100 funcionários */

/* Vetor para armazenar 1 nome com 30 caracteres */

86
Vetor
Declaração
Linguagem C

tipo nomeDoVetor[tamanhoDoVetor];

Linguagem C
/* Vetor para guardar 10 notas */
float notas[10];
/* Vetor para guardar o sexo de 50 pessoas */
char sexo[50];
/* Vetor para armazenar o valor do salario de 100 funcionários */
float salario[100];
/* Vetor para armazenar 1 nome com 30 caracteres */
char nome[30];
87
Vetor: atribuição
• Como atribuir um valor a um vetor?

SINTAXE:

nome_vetor[indice] = valor;

88
Vetor: atribuição
• Como atribuir um valor a um vetor?

Exemplo:

vet_IDADE[5] = 55;

89
Vetor
Atribuição
Linguagem C
nomeDoVetor[posição] = valor;

Linguagem C
/* Atribuir o valor 20 para a posição 2 do vetor notas */

/* Atribuir o valor F na primeira posição do vetor */

/* Atribuir o valor 12.23 na posição 3 do vetor vreais */

90
Vetor
Atribuição
Linguagem C
nomeDoVetor[posição] = valor;

Linguagem C
/* Atribuir o valor 20 para a posição 2 do vetor notas */
notas[2] = 20;
/* Atribuir o valor F na primeira posição do vetor */
sexo[0] = ‘F’;
/* Atribuir o valor 12.23 na posição 3 do vetor vreais */
vreais [3] = 12.23;

91
Vetor: leitura
• Como receber um valor do usuário num vetor?

SINTAXE:

printf(”favor digitar algo:”);

scanf(”%espec”,&nome_vetor[indice]);

92
Vetor: leitura
• Como receber um valor do usuário num vetor?

Exemplo:

printf(”favor digitar idade”);

scanf(”%d”,vet_IDADE[5]);

93
Exercício (5 minutos)

– Faça um algoritmo em Linguagem C para:


• Criar um vetor de tamanho 8 de qualquer tipo
• Armazenar qualquer valor nas 8 posições

94
Vetor
Leitura de dados
Linguagem C
int vet[8];
printf("Digite 1o elemento: /n”);
scanf(”%d”,&vet[0]);
printf("Digite 2o elemento: /n”);
scanf(”%d”,&vet[1]);
printf("Digite 3o elemento: /n”);
scanf(”%d”,&vet[2]);
printf("Digite 4o elemento: /n”);
scanf(”%d”,&vet[3]);
printf("Digite 5o elemento: /n”);
scanf(”%d”,&vet[4]);
printf("Digite 6o elemento: /n”);
scanf(”%d”,&vet[5]);
printf("Digite 7o elemento: /n”);
scanf(”%d”,&vet[6]);
printf("Digite 8o elemento: /n”);
scanf(”%d”,&vet[7]);
95
Vetor
Leitura de dados
Linguagem C
int i;
int vet[8];

for(i = 0; i < 7; i++)


{
printf(”Digite %d elemento:”,i+1);
scanf(”%d”,&vet[i]);
}

96
Vetor: exibição
• Como exibir um valor de um vetor?

SINTAXE:

printf(nome_vetor[indice]);

97
Vetor: exibição
• Como exibir um valor de um vetor?

EXEMPLO:

printf(vet_IDADE[5]);

98
Exercício (5 minutos)
– Faça um algoritmo em Linguagem Cpara:
Imprimir um vetor de tamanho 8 automaticamente:

1) vetor coluna

2) vetor linha

99
Vetor
Exibição
Linguagem C Linguagem C
Em coluna Em linha
int i; int i;
int vet[8]; int vet[8];

for(i = 0; i < 7; i++) for(i = 0; i < 7; i++)


{ {
printf(”...%d\n”,i); printf(”...%d\t”,i);
} }

100
Agenda
• Matriz bidimensional

– Definição
– Declaração
– Atribuição
– Leitura
– Exibição

101
Matriz
• A matriz é uma variável composta, pois é formado por
um número finito de variáveis
• E homogêneo porque essas variáveis são de um
mesmo tipo de dado (inteiro, real, caracter ou lógico)
• É bidimensional, pois possui 2 dimensões
• Seus elementos são acessados por 2 índices

102
Matriz
Quero fazer um programa para controlar a notas
dos alunos, preciso registrar quatro notas diferentes
mais a frequência, tenho ao todo 60 alunos!
Vetor Notas 1
A1 A2 A3 A4 ..... A59 A60
Vetor Notas 2
A1 A2 A3 A4 ..... A59 A60
Vetor Notas 3
A1 A2 A3 A4 ..... A59 A60
Vetor Notas 4
A1 A2 A3 A4 ..... A59 A60
Vetor Faltas
A1 A2 A3 A4 ..... A59 A60
103
Matriz
• 5 vetores?

• Será que é a melhor opção?

• Como faríamos em papel?


Aluno1 Aluno2 Aulno3 Aluno4 Aluno60
Nota 1 V1 V2 V3 V4 ..... V60
Nota 2 V1 V2 V3 V4 ..... V60
Nota 3 V1 V2 V3 V4 ..... V60
Nota 4 V1 V2 V3 V4 ..... V60
Faltas V1 V2 V3 V4 ..... V60
104
Matriz: declaração
• Como declarar uma matriz? Precisa de:
– Nome, tamanho e tipo

SINTAXE:

tipo MATRIZ[tam_linha][tam_coluna];

ONDE:
MATRIZ à nome da matriz
tam_linha à quantidade de linhas
tam_coluna à quantidade de colunas

105
Matriz: declaração
• Como declarar uma matriz? Precisa de:
– Nome, tamanho e tipo

EXEMPLO:

int mat_IDADE[5][5];

106
Matriz Declaração
Linguagem C

tipo nomeDaMatriz[tam_linhas] [tam_colunas] ;

Exemplos de uso
/* declara uma matriz para guardar 3 informações diferente de 300 paciente */

/* declara uma matriz de 4 notas para 100 alunos */

107
Matriz Declaração
Linguagem C

tipo nomeDaMatriz[tam_linhas] [tam_colunas] ;

Exemplos de uso
/* declara uma matriz para guardar 3 informações diferente de 300 paciente */
float pacientes[300] [3];
/* declara uma matriz de 4 notas para 100 alunos */
float notas[100] [4];

108
Matriz: atribuição
• Como atribuir um valor a uma matriz?

SINTAXE:

nome_matriz[LINHA][COLUNA] = valor;

109
Matriz: atribuição
• Como atribuir um valor a uma matriz?

Exemplo:

mat_IDADE[5][3] = 20;

110
Matriz: Atribuição

Linguagem C
tipo nomeDaMatriz[posiçãoLinha] [posiçãoColuna] = ValorDesejado;

Linguagem C
/* atribuir o valor 13 à primeira posição da primeira linha */

matriz [0][0] = 13;

/* Atribuir o caracter ‘P’ a primeira posição da terceira linha */

matriz [2][0] = ‘P’;

/* Atribuir o valor 11 a segunda coluna da segunda linha */

matriz [1][1] = 11;

111
Matriz: Atribuição

Linguagem C
tipo nomeDaMatriz[posiçãoLinha] [posiçãoColuna] = ValorDesejado;

Linguagem C
/* atribuir o valor 13 à primeira posição da primeira linha */

/* Atribuir o caracter ‘P’ a primeira posição da terceira linha */

/* Atribuir o valor 11 a segunda coluna da segunda linha */

112
Matriz: leitura
• Como receber um valor do usuário numa matriz?

SINTAXE:

printf(”favor digitar algo:”);

scanf(”%espec”,&nome_matriz[LINHA][COLUNA]);

113
Matriz: leitura
• Como receber um valor do usuário numa matriz?

Exemplo:

printf(”favor digitar idade”);

scanf(”%d”,&mat_IDADE[8][4]);

114
Matriz: exibição
• Como exibir um valor de uma matriz?

SINTAXE:

printf(nome_matriz[LINHA][COLUNA]);

115
Matriz: exibição
• Como exibir um valor de uma matriz?

EXEMPLO:

printf(mat_IDADE[8][4]);

116
1) Só existem matrizes Unidimensionais e
Bidimensionais?
R:

2) Se for uma matriz tridimensional,


terá três pares de colchetes?
R:

117
1) Só existem matrizes Unidimensionais e
Bidimensionais?
R: Não

2) Se for uma matriz tridimensional,


terá três pares de colchetes?
R: Sim

118
Laboratório e
Técnicas de
Programação de
Computadores I

FIM
Prof. MSc Diego R. Moraes
diegorafaelmoraes@gmail.com

Download do conteúdo da disciplina


https://sites.google.com/site/diegorafaelmoraes/downloads

Potrebbero piacerti anche