Buscar

Introdução à Programação de Computadores II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Laboratório de Programação de 
Computadores II
Pontifícia Universidade Católica de Minas Gerais
Computadores II
Aula 1
Prof. Lucas Schmidt
Apresentação
https://sites.google.com/site/proflucasscf/
proflucasscf@gmail.com
– Bacharel em Sistemas de Informação (PUC)
– Especialista em Desenvolvimento Web (PUC)– Especialista em Desenvolvimento Web (PUC)
– Mestre em Ciência da Computação (UFOP)
– Análise de Sistemas
– Atuação em projetos de computação móvel / 
mobile, redes sociais, projetos complexos...
– Vale, Petrobrás, FIAT, Oi...
Apresentação
• Ementa:
– Codificação e análise de desempenho de 
programas através de uma linguagem de programas através de uma linguagem de 
programação de alto nível
– Implementação de estruturas de dados 
estática e dinâmicas: listas, pilhas, filas, 
árvores e grafos
Apresentação
• Ementa:
– Pesquisa e ordenação em memória primária
– Funções recursivas
– Atributos de qualidade de programas
Apresentação
• Objetivos:
– Capacitar para a elaboração de programas 
em uma linguagem de alto nível que em uma linguagem de alto nível que 
permitam a manipulação de estruturas de 
dados heterogêneas, bem com seu 
armazenamento em memória secundária. 
– Capacitar para a implementação de funções 
recursivas. Implementar mecanismos para 
alocação de memória.
Apresentação
• Métodos Didáticos:
– Aprendizagem por exemplos.
– Problematização seguida de implementação.– Problematização seguida de implementação.
– Desafios com problemas relacionados à 
Engenharia.
– Exercícios individuais e em duplas
Apresentação
• Unidades de ensino (cronograma):
– Interpretador versus compilador.
– Apresentação da linguagem C.– Apresentação da linguagem C.
– Codificação em C/C++:
• elementos de um programa escrito em C;
• declaração de variáveis;
• escrita e leitura;
• operadores aritméticos, relacionais e lógicos 
estruturas de seleção e de repetição.
Apresentação
• Unidades de ensino (cronograma):
– Codificação em C/C++:
• arranjos (vetores e matrizes);• arranjos (vetores e matrizes);
• declaração de funções;
• passagem de parâmetros por valor;
• passagem de parâmetros por referência.
• Funções recursivas.
Apresentação
• Unidades de ensino (cronograma):
– Codificação em C/C++:
• Manipulação de arquivos: conceitos, escrita e • Manipulação de arquivos: conceitos, escrita e 
leitura, pesquisa seqüencial.
• Manipulação de ponteiros
• Implementação de Estruturas de Dados
• Métodos de ordenação
• Métodos de pesquisa e árvores
• Grafos
Apresentação
• Processo de avaliação:
– Prática avaliativa 1: 40 pontos (24/03/2014)*
– Prática avaliativa 2: 40 pontos (26/05/2014)*– Prática avaliativa 2: 40 pontos (26/05/2014)*
– Dois trabalhos práticos: 20 pontos (10 pontos 
cada) + exercícios no laboratório
– Atividades em classe e exta-classe
– Reavaliação: 40 pontos
* Datas com possibilidade de alteração
Apresentação
• Bibliografia básica:
– CELES, Waldemar; 
CERQUEIRA, Renato; CERQUEIRA, Renato; 
RANGEL, José Lucas. 
Introdução a estruturas 
de dados: com técnicas 
de programação em C. 
Rio de Janeiro: Elsevier, 
2004. xiv, 294 p. ISBN 
8535212280
Apresentação
• Bibliografia básica:
– DAMAS, Luís. Linguagem 
C. 10. ed. Rio de Janeiro: C. 10. ed. Rio de Janeiro: 
LTC – Livros Técnicos e 
Científicos, 2007. 410 p.
Apresentação
• Bibliografia básica:
– ZIVIANI, Nivio. Projeto de 
algoritmos: com algoritmos: com 
implementações em 
Pascal e C. 2. ed. Erev. E 
ampl. São Paulo: ìoneira 
Thomson Learningm 
c2004. 552p. 
Apresentação
• Turma:
– Quem são vocês?
– O que desejam?– O que desejam?
– Expectativas?
– Experiências?
Introdução
• Interpretadores x compiladores:
– Todo o programa escrito numa linguagem de 
programação de alto nível precisa de ser programação de alto nível precisa de ser 
traduzido para a linguagem de máquina, para 
que o computador possa executá-lo.
– Através de compiladores ou 
interpretadores!!!
Introdução
• Compiladores:
– Um compilador tem a finalidade de converter 
uma linguagem (Linguagem Fonte) de fácil uma linguagem (Linguagem Fonte) de fácil 
escrita e leitura para os programadores, 
numa linguagem (Linguagem alvo ou objeto) 
que possa ser executada pelas máquinas
Introdução
• Compiladores:
– O código executável gerado pelo compilador 
é dependente do sistema operacional e da é dependente do sistema operacional e da 
linguagem de máquina para o qual o código 
fonte foi traduzido
– A enorme variedade de compiladores 
existentes é bem vinda, visto que existem 
milhares de linguagens fonte, e as linguagens 
alvo são também muito variadas
Introdução
• Compiladores:
– Começaram a aparecer no início da década 
de 50 de 50 
– Muito do trabalho inicial dos compiladores 
resumia-se a tradução de fórmulas 
aritméticas para código máquina
Introdução
• Compiladores:
– Análise: parte o programa fonte em peças 
constituintes e cria uma representação constituintes e cria uma representação 
intermédia do programa fonte.
– Síntese: Constrói o desejado programa alvo 
(código de máquina) a partir da 
representação intermédia. Técnicas mais 
especializadas!!!
Introdução
• Compiladores:
Código 
Fonte
C/C++ Análise
COMPILADOR
Objeto
010101
Síntese
Introdução
• Compiladores:
Introdução
• Compiladores:
– Linguagens Compiladas:
• C/C++
• COBOL
• Delphi
• Pascal
• Visual Basic
• Fortran
Introdução
• Interpretadores:
– O funcionamento dos interpretadores é muito 
parecido ao dos compiladores.parecido ao dos compiladores.
– O interpretador traduz o código linha a linha.
– O código fonte não é totalmente traduzido 
antes de ser executado.
Introdução
• Interpretadores:
– Não existem fases distintas nem se produz 
código intermediário.código intermediário.
– Leitura do código em tempo de execução
Introdução
• Interpretadores:
– Linguagens Interpretadas:
• ASP
• JavaScript
• PHP
• Ruby
• Python
Introdução
• Interpretadores x compiladores:
Vantagens Desvantagens
Execução mais rápida Várias etapas de tradução
Permite estruturas de Programação final é maior, 
Compiladores
Permite estruturas de 
programação mais 
completas
Programação final é maior, 
necessitando mais memória 
para a sua execução
Permite a otimização do 
código fonte
Processo de correção de erros 
e depuração é mais demorado
Interpretadores
Depuração do programa é 
mais simples 
Execução do programa é mais 
lenta
Consome menos memória Estruturas de dados demasiado 
simples
Resultado imediato do 
programa ou rotina 
desenvolvida 
Necessário fornecer o programa 
fonte ao utilizador
Linguagem C/C++
• Introdução:
– linguagem de programação compilada 
– estruturada– estruturada
– imperativa
– procedural
– padronizada pela ISO
Linguagem C/C++
• Introdução:
– criada em 1972 para desenvolver o sistema 
operacional Unixoperacional Unix
– é uma das linguagens de programação mais 
populares
– C tem influenciado muitas outras linguagens 
de programação (extensão C++)
Linguagem C/C++
• Características:
– Uma linguagem extremamente simples, com 
funcionalidades não-essenciais, tais como funcionalidades não-essenciais, tais como 
funções matemáticas ou manuseamento de 
arquivos, fornecida por um conjunto de 
bibliotecas de rotinas padronizada
– A focalização no paradigma de programação 
procedural
Linguagem C/C++
• Características:
– Um sistema de tipos simples que evita várias 
operações que não fazem sentidooperações que não fazem sentido
– Uso de uma linguagem de pré-
processamento, o pré-processador de C, para 
tarefas tais como a definição de macros e a 
inclusãode múltiplos ficheiros de código fonte
Linguagem C/C++
• Características:
– Ponteiros dão maior flexibilidade à linguagem
– Acesso de baixo-nível, através de inclusões 
de código Assembly no meio do programa C
– Estruturas de variáveis, (structs), que 
permitem que dados relacionados sejam 
combinados e manipulados como um todo
Linguagem C/C++
• Ambiente de desenvolvimento 
(compilador):
– Code::Blocks!!!– Code::Blocks!!!
http://www.codeblocks.org/
Linguagem C/C++
• Começando um novo programa!!!
– File > New > Project > Console application 
> Next > C++> Next > C++
– Especifique um nome para seu projeto em 
[Project title] (Ex.: Aula1)
– Escolha um diretório para criação do seu 
projeto em [Folder to create project in] [...]
– Next > Finish
Linguagem C/C++
• Começando um novo programa!!!
– Em Workspace > Sources abra o arquivo 
main.cppmain.cpp
Linguagem C/C++
• Primeiro programa!:
– Altere seu programa, conforme abaixo:
– Clique em Build > Build and run
#include <iostream.h>
#include <stdio.h>
int main()
{
cout << "Ola Pessoal!" << endl;
return 0;
}
Linguagem C/C++
• Primeiro programa!:

Outros materiais