SlideShare uma empresa Scribd logo
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 Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf

02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
william Sarti José
 
Algoritmos
AlgoritmosAlgoritmos
C# básica
C#   básicaC#   básica
C hardware
C hardwareC hardware
C hardware
aulas for you
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
Jefferson Clayton
 
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 desenvolvimento
Max_Antonelli
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
Lhaís Rodrigues
 
Csharp
CsharpCsharp
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ções
nataferraz
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
Rodrigo Almeida
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
Andrei Bastos
 
Seminário: C#
Seminário: C#Seminário: C#
Seminário: C#
Ivna Valença
 
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
SchoolByte
 
Seminário: C++
Seminário: C++Seminário: C++
Seminário: C++
Ivna Valença
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
Rogerio R. Lima Cisi
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
Jcradio Vw
 
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
Andre Nascimento
 

Semelhante a Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf (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
 
C hardware
C hardwareC hardware
C hardware
 
Apostila chardwere
Apostila chardwereApostila chardwere
Apostila chardwere
 
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
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
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
 

Mais de Enio Filho

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

Mais de Enio Filho (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

Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdfIntendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Falcão Brasil
 
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptxAdministração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
helenawaya9
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
LuizHenriquedeAlmeid6
 
Uma Breve História da Origem, Formação e Evolução da Terra
Uma Breve História da Origem, Formação e Evolução da TerraUma Breve História da Origem, Formação e Evolução da Terra
Uma Breve História da Origem, Formação e Evolução da Terra
Luiz C. da Silva
 
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LEDPlano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
luggio9854
 
Fotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosasFotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosas
MariaJooSilva58
 
Introdução ao filme Divertida Mente 2 em pdf
Introdução ao filme Divertida Mente 2 em pdfIntrodução ao filme Divertida Mente 2 em pdf
Introdução ao filme Divertida Mente 2 em pdf
valdeci17
 
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptxSlides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
LuizHenriquedeAlmeid6
 
Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024
Bibliotecas Escolares AEIDH
 
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
Manuais Formação
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
Mary Alvarenga
 
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
principeandregalli
 
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIALA GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
ArapiracaNoticiasFat
 
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdfGeotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Falcão Brasil
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
Manuais Formação
 
Marinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdfMarinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdf
Falcão Brasil
 
Portfólio Estratégico da Marinha do Brasil (MB).pdf
Portfólio Estratégico da Marinha do Brasil (MB).pdfPortfólio Estratégico da Marinha do Brasil (MB).pdf
Portfólio Estratégico da Marinha do Brasil (MB).pdf
Falcão Brasil
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Falcão Brasil
 
gestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdfgestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdf
Maria das Graças Machado Rodrigues
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
Mary Alvarenga
 

Último (20)

Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdfIntendência da Aeronáutica. Somos um, sou você Intendência!.pdf
Intendência da Aeronáutica. Somos um, sou você Intendência!.pdf
 
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptxAdministração Em Enfermagem.pptx caala - Cópia-1.pptx
Administração Em Enfermagem.pptx caala - Cópia-1.pptx
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
 
Uma Breve História da Origem, Formação e Evolução da Terra
Uma Breve História da Origem, Formação e Evolução da TerraUma Breve História da Origem, Formação e Evolução da Terra
Uma Breve História da Origem, Formação e Evolução da Terra
 
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LEDPlano_Aula_01_Introdução_com_Circuito_Piscar_LED
Plano_Aula_01_Introdução_com_Circuito_Piscar_LED
 
Fotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosasFotossíntese e respiração: conceitos e trocas gasosas
Fotossíntese e respiração: conceitos e trocas gasosas
 
Introdução ao filme Divertida Mente 2 em pdf
Introdução ao filme Divertida Mente 2 em pdfIntrodução ao filme Divertida Mente 2 em pdf
Introdução ao filme Divertida Mente 2 em pdf
 
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptxSlides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
Slides Lição 4, CPAD, O Encontro de Rute com Boaz, 3Tr24.pptx
 
Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024Boletim informativo - Contacto - julho de 2024
Boletim informativo - Contacto - julho de 2024
 
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
 
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
Guia Genealógico da Principesca e Ducal Casa de Mesolcina, 2024
 
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIALA GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
A GEOPOLÍTICA ATUAL E A INTEGRAÇÃO ECONÔMICA E SOCIAL
 
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdfGeotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
Geotecnologias Aplicadas na Gestão de Riscos e Desastres Hidrológicos.pdf
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
 
Marinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdfMarinha do Brasil (MB) Politíca Naval.pdf
Marinha do Brasil (MB) Politíca Naval.pdf
 
Portfólio Estratégico da Marinha do Brasil (MB).pdf
Portfólio Estratégico da Marinha do Brasil (MB).pdfPortfólio Estratégico da Marinha do Brasil (MB).pdf
Portfólio Estratégico da Marinha do Brasil (MB).pdf
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
 
gestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdfgestão_de_conflitos_no_ambiente_escolar.pdf
gestão_de_conflitos_no_ambiente_escolar.pdf
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
 

Algoritmos e LP - Aula 07 - Vetores e Introdução ao C.pdf

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