Baixe o app para aproveitar ainda mais
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!:
Compartilhar