SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Aula 07
Vetores
Introdução ao C
Ênio Prates Vasconcelos Filho
Faculdades Alfa
V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Vetores;
Δ Introdução ao C:
• Compiladores;
• Instalando;
• “Hello World”;
• I/O;
Δ Exercícios;
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]?
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
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
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
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)
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
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
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
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.
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;
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;
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;
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:
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).
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
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
V
E
T
O
R
E
S
E
I
N
T
R
O
D
U
Ç
Ã
O
A
O
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Desenvolvendo em C
Δ Existem várias formas de desenvolver programas em C:
• GCC (Linux);
• MinGCC (Windows);
• DevC;
• BorlandC;
• Ideone.com;
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)
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
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;
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;
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;

Mais conteúdo relacionado

Semelhante a Introdução aos Vetores e Linguagem C

02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptxwilliam Sarti José
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Alex Camargo
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimentoMax_Antonelli
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicaçõesnataferraz
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programaçãoAndrei Bastos
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.netAndre Nascimento
 
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...Juliana Chahoud
 

Semelhante a Introdução aos Vetores e Linguagem C (20)

02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
C# básica
C#   básicaC#   básica
C# básica
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
 
C hardware
C hardwareC hardware
C hardware
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Gt 10 FCSI- ambiente de desenvolvimento
Gt 10  FCSI- ambiente de desenvolvimentoGt 10  FCSI- ambiente de desenvolvimento
Gt 10 FCSI- ambiente de desenvolvimento
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Csharp
CsharpCsharp
Csharp
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
 
Seminário: C#
Seminário: C#Seminário: C#
Seminário: C#
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Seminário: C++
Seminário: C++Seminário: C++
Seminário: C++
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.net
 
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
 

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 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.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 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.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 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfEnio Filho
 
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdfAlgoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.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 (13)

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 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.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 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
 
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 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
 
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdfAlgoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.pdf
Algoritmos e LP - Aula 05 - Estruturas de Repeticao - p2.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

PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
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
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 

Último (20)

PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
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...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 

Introdução aos Vetores e Linguagem C

  • 1. Aula 07 Vetores Introdução ao C Ênio Prates Vasconcelos Filho Faculdades Alfa
  • 2. V E T O R E S E I N T R O D U Ç Ã O A O C ALGORITMOS - 02/2015 – ÊNIO FILHO Tópicos Δ Vetores; Δ Introdução ao C: • Compiladores; • Instalando; • “Hello World”; • I/O; Δ Exercícios;
  • 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
  • 18. 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
  • 19. V E T O R E S E I N T R O D U Ç Ã O A O C ALGORITMOS - 02/2015 – ÊNIO FILHO Desenvolvendo em C Δ Existem várias formas de desenvolver programas em C: • GCC (Linux); • MinGCC (Windows); • DevC; • BorlandC; • Ideone.com;
  • 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;