3. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Variável x Vetor (array)
Δ Consideremos uma variável inteira X:
• X: inteiro;
Δ Agora, vamos declarar um vetor Y de 5 posições:
• Y: conjunto [1..5] de inteiro;
X 10
Y 25 45 7 10 5
(1) (2) (3) (4) (5)
Perguntas:
• Qual o valor de X?
• Qual o valor de Y[3]?
• Se i=4, qual o valor de Y[i]?
• Se j=1, qual o valor de Y[j]?
• Quanto é Y[2]+X?
• Se z=5, Quanto é Y[1]/Y[z]?
4. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Variável x Vetor (array)
Δ Exemplo de declaração de um vetor de n posições:
• Nome_vetor: conjunto[1..n] de tipo_de_vetor
Δ Declarando o vetor:
• Vetor_exemplo: conjunto[1..10] de inteiro
Nome do Vetor Define como vetor Tamanho do Vetor
5. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Variável x Vetor (array)
Δ Atribuindo valores para um vetor:
• Leia(Nome_vetor[5])
Δ Exemplo:
• Leia(Vetor_exemplo[5])
o%% armazena, na posição 5 do vetor, o valor lido;
• Leia(Vetor_exemplo[i])
o%% armazena, na posição i do vetor, o valor lido;
• Leia(Vetor_exemplo[i+j])
o%% armazena, na posição i+j do vetor, o valor lido;
Nome do Vetor Posição do vetor onde vamos armazenar o valor lido
6. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Variável x Vetor (array)
Δ Usando os valores armazenados no vetor:
• Escreva(Nome_vetor[5])
Δ Exemplo:
• escreva(Vetor_exemplo[5])
oescreve na tela, o valor armazenado na posição 5 do
vetor;
• escreva(Vetor_exemplo[i])
oescreve na tela, o valor armazenado na posição i do
vetor;
• escreva(Vetor_exemplo[i+j])
oescreve na tela, o valor armazenado na posição i+j do
vetor;
Nome do Vetor Posição do vetor onde vamos armazenar o valor lido
7. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Variável x Vetor (array)
Δ O que será escrito na tela:
a) escreva(Vetor_exemplo[5]);
b) i<-3
escreva(Vetor_exemplo[i])
c) i<-2
j<-1
escreva(Vetor_exemplo[i+j])
d) i<-2
j<-3
Escreva(vetor_exemplo[i]+vetor_exemplo[j+1])
Vetor_exemplo 25 45 7 10 5
(1) (2) (3) (4) (5)
8. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Definindo valores para todas as posições do Vetor
Programa preenche_vetor
Var
i:inteiro
vetor1:conjunto [1..100] de inteiro
Inicio
para i de 1 até 100 passo 1 faca
escreval(“digite um número: ”)
leia(vetor1[i])
fim_para
fim
9. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Definindo valores para todas as posições do Vetor
Programa preenche_le_vetor
Var
i:inteiro
vetor1:conjunto [1..100] de inteiro
Inicio
i<-1
para i de 1 até 100 passo 1 faca
escreval(“digite um número: ”)
leia(vetor1[i])
fim_para
i<-1
para i de 1 até 100 passo 1 faca
escreval(“O valor do vetor na posição ”,i,” é:
”,vetor1[i])
fim_para
fim
10. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Trocando valores entre Vetores
Programa inverte_vetor
Var
i:inteiro
vetor1:conjunto [1..100] de inteiro
vetor2:conjunto [1..100] de inteiro
Inicio
i<-1
para i de 1 até 100 passo 1 faca
escreval(“digite um número: ”)
leia(vetor1[i])
fim_para
i<-1
para i de 1 até 100 passo 1 faca
vetor2[101-i]<-vetor1[i]
fim_para
para i de 1 até 100 passo 1 faca
escreval(“O valor do vetor1 na posição ”,i,” é: ”,vetor1[i])
escreval(“O valor do vetor2 na posição ”,i,” é: ”,vetor2[i])
fim_para
fim
11. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Vocês
Δ Leia 10 elementos inseridos pelo usuário e apresente-os, usando vetores;
Δ Ler 8 elementos em um vetor A. Construir um vetor B com os elementos da
matriz A multiplicados por 3.
• O elemento B[1] deverá ser implicado pelo elemento A[1 ]*3;
• O elemento B[2] implicado pelo elemento A[2]*3 e assim por diante, até 8.
• Apresentar o vetor B.
Δ Ler 15 elementos de uma matriz A do tipo vetor. Construir uma matriz B de
mesmo tipo, observando a seguinte lei de formação: "Todo elemento de B
deverá ser o quadrado do elemento de A correspondente". Apresentar as
matrizes A e B.
Δ Criar um programa que efetue a leitura dos nomes de 20 pessoas e em
seguida apresentá-los na mesma ordem em que foram informados.
12. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C
Δ A linguagem de programação C é uma linguagem de finalidade geral;
Δ Foi desenvolvida por programadores para programadores tendo como meta
características de flexibilidade e portabilidade, pois não é "atada" a um
sistema operacional ou a uma máquina particular;
Δ É uma linguagem que nasceu juntamente com o advento da teoria de
linguagem estruturada e do computador pessoal;
Δ Assim tornou-se rapidamente uma linguagem "popular" entre os
programadores.
Δ C é estreitamente associada ao sistema operacional UNIX, já que foi usada
para desenvolve-lo;
13. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C – Interpretadores x Compiladores
Definições Básicas:
Δ Existem dois tipos fundamentais de tradutores:
• interpretadores e compiladores.
Δ No caso de um interpretador, as instruções definidas na linguagem de alto
nível são executadas diretamente.
• Ele traduz um comando de um programa de cada vez e então, chama uma
rotina para completar a execução do comando, como ilustrado na figura.
• Mais precisamente, um interpretador é um programa que executa
repetidamente a seguinte sequência:
oPega a próximo instrução:
oDetermina as ações a serem executadas;
oExecuta estas ações;
14. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C – Interpretadores x Compiladores
Δ Já um compilador produz, a partir do programa de entrada, outro programa que
é equivalente ao original, porem numa linguagem que é executável;
Δ Este programa resultante pode ser em uma linguagem que é diretamente
executável, tal como linguagem de máquina, ou indiretamente executável, tal
como outra linguagem para a qual já existe um tradutor;
Δ Cada um destes processos tem suas vantagens e desvantagens:
• Interpretação, apesar de levar um tempo maior de execução, tem a vantagem de
não traduzir instruções que nunca são executadas e de conseguir voltar a instrução
correspondente na linguagem de programação a partir de qualquer ponto da
execução.
• O compilador, por outro lado, precisa traduzir cada instrução somente uma vez,
independente de quantas vezes a instrução é executada.
o Isto aplica-se tanto no caso de iteração como no caso de execuções repetidas do mesmo
programa.
Δ As vantagens de um compilador, em geral, superam as do interpretador na
pratica, o que faz com que esta forma de tradução seja uma das mais usadas;
15. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C – Compiladores
Δ O objetivo de um compilador é traduzir um programa escrito em uma
linguagem fonte em um programa equivalente expresso em uma linguagem
executável pela máquina;
Δ Estes dois programas são chamados programa fonte (código fonte) e
programa objeto (código objeto);
Δ A seguir, uma visão do processo de compilação:
16. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C – Compiladores
Δ Para geração do código executável final (código que pode ser executado
pelo sistema operacional), existem outros passos além da compilação:
Δ No primeiro passo, o pré-processador mapeia instruções escritas numa
linguagem de alto nível estendida, para instruções da linguagem de
programação original. Entre as funções que ele pode realizar incluem-se:
• Processamento de macros (as evocações a macro-rotinas são traduzidas para
o código original da macro);
• Inclusão de arquivos (referências a arquivos são substituídas pelo próprio
arquivo);
• Racionalização (substituição de código não oferecido pelo compilador por
código equivalente suportado por ele);
• e extensão da linguagem (suporte a novos aspectos).
17. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagem de Programação C – Compiladores
Δ O compilador analisa o código-fonte e o converte este para um código-assembly
(versão mnemônica da linguagem de máquina).
Δ O montador traduz código-assembly para código-objeto (ou programa objeto),
que é a versão em linguagem de máquina do código-fonte.
Δ Porém, esta forma é intermediária, não podendo ser lido pelo programador, nem
executado pelo computador.
Δ A razão da sua existência é porque todos programas em C devem ser "linkados" com
rotinas de suporte da biblioteca de execução C.
Δ Finalmente, o ligador (ou linkeditor) "junta" o código objeto com as bibliotecas
necessárias para gerar o programa executável.
Δ O tempo após a ativação do programa executável é chamado tempo de execução
20. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis em C
Δ Um identificador em C é formado por caracteres alfanuméricos.
Δ O primeiro caractere tem que ser “_” ou uma letra; os outros caracteres podem
ser:
• letras: A-Z, a-z;
• dígitos: 0-9;
• sublinhado: _.
Δ Não pode haver dois identificadores iguais.
Δ Letras minúsculas e letras maiúsculas são diferentes.
Δ Os identificadores não podem ser acentuados.
Δ Não pode haver espaço em branco num identificador.
Δ O caractere “ç” não pode ser usado num identificador.
Δ Um identificador não pode ter o mesmo nome das palavras reservadas do C
(como main, if, else, int, char)
21. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis em C
Δ Na linguagem C, há 5 tipos básicos (int, float, double, chare void) e quatro
modificadores de tipos (long, short, signed e unsigned), o que amplia muito
os tipos de variáveis, mas, neste curso, usaremos apenas 3 tipos básicos:
• int;
• float;
• char.
Δ O tipo de dados “double (%Lf)” corresponde ao float, mas com maior
capacidade de armazenamento.
Δ Para se declarar uma variável, escreve-se o nome de seu tipo, salta-se um
espaço em branco, em seguida o nome do seu identificador e ponto e
vírgula para finalizar a declaração:
• int nome_da_variavel
22. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis em C
Δ Se mais de uma variável for do mesmo tipo básico, elas podem ser
declaradas juntas, apenas separadas por vírgulas.
int Variavel_1, variável_2, variável 3
Δ Pode-se inicializar uma variável na sua declaração atribuindo-se a ela um
valor inicial compatível com seu tipo:
int Variavel_1=0;
Δ Toda variável precisa ser declarada antes de ser utilizada.
Δ Não pode haver duas variáveis com mesmo nome, mesmo que tenham
tipos básicos diferentes, a menos que algum caractere maiúsculo ou
minúsculo as diferencie:
int variavel_1=0;
Int Variavel_1=0;
23. V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis em C
Δ char nome[20], letra, zero=’0’;
Δ float soma=0;
Δ int n1, n2;
Δ float raiz1, Total_dos_Salarios;
Δ char nome_de_familia[30]=“Menezes”;
Δ int idade, cont=0;
24. 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;