MC102 Algoritmos e Programação de Computadores



Documentos relacionados
MC-102 Aula 01. Instituto de Computação Unicamp

Fundamentos de Informática 1ºSemestre


História da Informática. Prof. Bruno Crestani Calegaro

A História do Computador. Linguagem de Programação Rone Ilídio/ Natã Goulart UFSJ - CAP

INFORMÁTICA HISTÓRIA DA INFORMÁTICA 1º PD PROFESSOR

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de A linguagem C

Introdução à Computação

Informática. A Era da Computação - Aula 1 ClevertonHentz

Disciplina de Informática. Profª. Me. Valéria Espíndola Lessa

Organização Básica de computadores e linguagem de montagem

Gerações de Computadores. INF005 - Arquitetura de Computadores e Software Básico Aula 3 Flávia Maristela (flavia@flaviamaristela.

AULA 01 CONCEITOS BÁSICOS DE PROGRAMAÇÃO. Eduardo Camargo de Siqueira INFORMÁTICA APLICADA TÉCNICO EM ELETRÔNICA

INFORMÁTICA APLICADA À ADMINISTRAÇÃO I

Introdução à Computação

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

AULA 01 INTRODUÇÃO. Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação

Evolução dos Computadores

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz

Organização de Computadores I

1. Histórico e Evolução dos Computadores

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

Um computador é um dispositivo capaz de executar cálculos e tomar decisões lógicas milhões de vezes mais rápidas do que podem os seres humanos.

Introdução à Computação: História dos computadores

O Computador. Conceito

Informática, Internet e Multimídia. Profa. Késsia R. C. Marchi

O modelo do computador

Processamento de dados - Aula I

MAC2166 Introdução à Computação Aula 1 (Extra) História da Computação

Informática I. Aula 1. Aula 1-17/04/2006 1

Fundamentos e Suporte de Computadores. Professora Monalize

Tecnologias de Informação e Comunicação

SUMÁRIO. Evolução. Do passado ao presente. Futuro. Cálculos manuais Calculadoras mecânicas Máquinas eletrônicas

Arquitetura e Organização de Computadores

Processamento de Dados. A Evolução dos Computadores

Formação Modular Certificada. Arquitetura interna do computador. História dos computadores UFCD Joaquim Frias

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida

Fundamentos de. Ricardo José Cabeça de Souza 2010 Fundamentos 1

Gênese o começo de tudo... Gênese o começo de tudo... Gênese o começo de tudo... Gênese o começo de tudo... Ábaco (cerca de 3000 a.c.

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

História e Organização Básica de Computadores

Calculadoras Mecânicas

Introdução a Informática

Histórico dos Computadores

O Computador. Evolução dos métodos de cálculo. Estrutura do Computador Digital

1. - Os engenhos calculadores

Arquitetura de Computadores. Prof. Marcelo Mikosz Gonçalves

Unidade 1: O Computador

Capítulo 1 Introdução

2.1. Breve Histórico. Joseph Marie Jacquard, técnico de tecelagem francês, criou o tear automático controlado por cartões perfurados, em 1801.

Organização de Computadores 1

Sistema de Computação

Elisa Maria Pivetta Cantarelli. PDF created with pdffactory Pro trial version

Programação de Computadores

Apostila 1 Introdução à Informática

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais

Informática Aplicada

Introdução INTRODUÇÃO À COMPUTAÇÃO M. Sistema Computacional. Máquina Virtual. Solução 8/10/10. O problema de comunicação humanocomputador

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução à Computação Aulas 03 e 04. Cristiane B. R. Ferreira, M.Sc.

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Figura 1: Ábaco: considerado a primeira ferramenta em computação.

História do Computadores Prof. Rafael Gross

Curso Técnico de Nível Médio

Curso Técnico em Redes de computadores. Evolução Histórica dos Computadores

ARQUITETURA DE COMPUTADORES

CIÊNCIA E TECNOLOGIA DO RIO GRANDE INFORMÁTICA BÁSICA AULA 01. Docente: Éberton da Silva Marinho ebertonsm@gmail.

Conceitos Básicos de Programação

1.1. Organização de um Sistema Computacional

Histórico da Evolução dos Computadores

INTRODUÇÃO À COMPUTAÇÃO

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

Microinformática - História da computação. Jeronimo Costa Penha SENAI - CFP/JIP

Arquitetura de Computadores Introdução

Organização e Arquitetura de Computadores I. de Computadores

Arquitetura de Computadores. AULA 1 Introdução

Informática Introdução

Conceitos e Evolução Capítulos 1 e 2

O que é Arquitetura de Computadores?

Laboratório de Sistemas Operacionais. Prof. Fernando Nakayama de Queiroz

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva /msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

Computador Máquina que processa uma grande quantidade de dados com rapidez e precisão.

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

Introdução à Arquitetura de Computadores IFES Campus Serra

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Introdução. Prof. Marcos Zurita Teresina

Informática Básica. Prof. Dr. Charlie Antoni Miquelin

Arquitetura de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

Histórico dos Sistemas Operacionais

I n f o r m á t i c a

Introdução à Informática HISTÓRICO E TIPOS DE COMPUTADORES

Gerações de Máquinas. Geração Zero. Evolução dos Computadores Breve Histórico. Evolução dos Computadores Breve Histórico

Sistemas Operacionais

André Aziz Francielle Santos

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Transcrição:

MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2013

Roteiro 1 Organização Básica de Computadores 2 Organização de um Ambiente Computacional 3 Algoritmos 4 Linguagem de Programação C Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 2 / 40

Computador Um computador é uma máquina que, a partir de uma entrada, realiza um processamento sobre as informações e gera uma saída. Um computador normalmente é utilizado para executar tarefas extensas e complexas que, caso fossem realizadas manualmente, exigiriam um tempo muito maior. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 3 / 40

Hardware Software Hardware corresponde aos componentes físicos que compõem o computador, tais como unidade central de processamento, memória e dispositivos de entrada e saída. Software corresponde aos programas que executam tarefas utilizando o hardware do computador, tais como sistema operacional, aplicativos, bibliotecas. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 4 / 40

Hardware Os computadores digitais operam com dois níveis de tensão, sendo o sistema binário de enumeração mais natural. Bit (binary digit) é a menor unidade de informação que pode ser armazenada ou transmitida: pode assumir valores 0 ou 1. Byte: agrupamento de 8 bits em uma palavra. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 5 / 40

Software Programas são compostos por um conjunto de instruções que operam o hardware, além de operações lógicas e aritméticas. Temos abaixo, por exemplo, três instruções para um computador de 32 bits. 0100 0010 0011 0101 0101 0100 0011 0110 0100 1110 1100 1100 1001 0110 0110 1000 0000 0101 1111 1110 1101 0011 0000 1100 Um software é composto por milhares de instruções deste tipo. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 6 / 40

Modelos de Computador Modelo de Turing: a partir de um programa, o computador pode processar os dados de entrada e gerar dados de saída. programa dados de entrada computador dados de saída Modelo de Alan Turing (1936) Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 7 / 40

Modelos de Computador Modelo de Von Neumann: um computador é dividido em quatro componentes principais: dispositivos de entrada e saída, unidade lógica e aritmética, memória e unidade de controle. Os programas são armazenados na memória do computador. computador entrada e saída dados de entrada unidade lógica e aritmética unidade de controle memória dados de saída Arquitetura de John von Neumann (1946) Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 8 / 40

História dos Computadores Em 1623, Wilhelm Schickard construiu a primeira máquina de calcular mecânica, capaz de realizar as operações básicas de adição e subtração para números de seis dígitos. Réplica da máquina de calcular de Schickard Em 1642, Blaise Pascal inventou a calculadora mecânica chamada Pascaline, que realizava operações básicas de adição e subtração até oito dígitos. Pascaline Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 9 / 40

Em 1673, Gottfried Leibniz aperfeiçou a máquina de Pascal e criou uma calculadora mecânica, conhecida como Roda de Leibnitz, que realizava operações de adição, subtração, multiplicação e divisão. Em 1801, Joseph-Marie Jacquard inventou um tear mecânico controlado por cartões perfurados. O equipamento pode ser considerado como a primeira máquina mecânica programável da história, em que os cartões forneciam os comandos necessários para a tecelagem dos padrões nos tecidos. Máquina de Jacquard Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 10 / 40

Em 1822, Charles Babbage projetou a máquina diferencial para cálculos com polinômios e, em 1835, a máquina anaĺıtica, que é um projeto de computador mecânico programável de uso geral empregando cartões perfurados para a entrada de dados e uma máquina a vapor para fornecimento de energia. Réplica da máquina anaĺıtica de Babbage Em 1890, Herman Hollerith construiu uma máquina programável capaz de ler e processar dados armazenados em cartões perfurados. A máquina foi utilizada para auxiliar o censo de 1890. Hollerith foi um dos fundadores da International Business Machines (IBM). Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 11 / 40

Em 1935, Konrad Zuse construiu o primeiro computador eletromecânico completamente funcional, conhecido como Z1. A máquina usava relés que executavam os cálculos e dados lidos em fitas perfuradas e utilizava o sistema binário de numeração. Réplica do computador eletromecânico Z1 Em 1936, Alan Turing desenvolveu a máquina universal, muito antes de existirem os modernos computadores digitais, sobre a qual publicou um artigo que versava sobre o modelo teórico de um computador, restrito aos aspectos lógicos do seu funcionamento (memória, estados e transições). A ideia de computabilidade, ou seja, a definição de quais problemas poderiam ser resolvidos por um computador, começou a ser delineada. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 12 / 40

Em 1939, John Atanasoff e seu assistente Clifford Berry projetaram e construíram o primeiro computador eletrônico digital, conhecido como ABC (Atanasoff-Berry Computer). O computador foi projetado originalmente para resolver um sistema de equações lineares. Computador Atanasoff-Berry Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 13 / 40

Em 1944, Allan Turing ajudou a construir o computador Colossus, projetado para decifrar códigos secretos dos alemães durante a segunda guerra mundial, conhecidos como Enigma Alemão. Computador Colossus Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 14 / 40

Em 1944, a Marinha dos Estados Unidos, a Universidade de Harvard e a IBM desenvolveram um computador conhecido como Mark I, com base na máquina anaĺıtica de Babbage. O computador utilizava componentes elétricos e mecânicos e funcionava com relés e era programado por fita de papel. Ocupava aproximadamente 120m 3, possuía 10m de comprimento, 2m de largura e pesava 70 toneladas. O Mark I foi projetado para calcular trajetórias baĺısticas de canhões de longo alcance. Computador Mark I Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 15 / 40

Em 1946, o Exército dos Estados Unidos desenvolveu o computador eletrônico ENIAC (Eletronic Numeric Integrator And Calculator). O computador utilizava 18000 válvulas, media aproximadamente 30m de comprimento e 3m de largura, pesava 30 toneladas e consumia 178 kw de energia. Foi projetado para calcular trajetórias baĺısticas de mísseis. O programador tinha que conectar um grande número de fios, relés e sequências de chaves para definir códigos a serem executados. Computador ENIAC (programadores utilizando a máquina e detalhe das válvulas na parte de trás) Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 16 / 40

Em 1946, John von Neumann propôs que um programa fosse armazenado em um computador da mesma forma que os dados. Esta proposta, chamada de Arquitetura de von Neumann, é composta por 3 características principais, sendo a base para os computadores programáveis modernos: codificação das instruções de modo a serem armazenadas na memória do computador; armazenamento em memória das instruções e de toda e qualquer informação necessária na execução da tarefa; no processamento do programa, a busca das instruções deve acontecer diretamente na memória e não nos então utilizados cartões perfurados, a cada passo. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 17 / 40

Em 1947, John von Neuman, John Eckert e John Mauchly começaram a trabalhar em uma versão melhorada do ENIAC, denominada EDVAC (Electronic Discrete Variable Automatic Computer), que incorporou o conceito de armazenamento de programas em memória. O EDVAC usava memórias baseadas em linhas de retardo de mercúrio, com maior capacidade de armazenamento. Outro computador que armazenava programas em memória foi o EDSAC (Electronic Delay Storage Automatic Calculator). Computador EDSAC Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 18 / 40

Em 1955, os laboratórios da AT&T Bell anunciam a construção do TRADIC (Transistorized Airborne Digital Computer), o primeiro computador totalmente transistorizado. Ele possuía aproximadamente 800 transistores ao invés das antigas válvulas, o que permitia trabalhar com menos de 100W de consumo de energia. Computador TRADIC Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 19 / 40

Em 1958, Jack Kilby desenvolveu um dos primeiros circuitos integrados, contendo 5 componentes em uma peça de germânio com meia polegada de comprimento. Esses circuitos são um conjunto de transistores, resistores e capacitores construídos sobre uma base de siĺıcio (material semicondutor). Em 1969, a agência americana ARPA (Advanced Research and Projects Agency) desenvolveu a rede ARPANET, cujo objetivo era interligar as bases militares e os departamentos de pesquisa do governo americano. Esta rede iniciou dentro do Pentágono e é a precursora da Internet. Em 1969, há o lançamento do Kenbak-1, considerado o primeiro microcomputador (computador pessoal). Em 1971, Ray Tomlinson implementou um sistema de correio eletrônico (e-mail) na ARPANET. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 20 / 40

Em 1972, Alan Kay descreve a proposta de um dispositivo portátil, precursor dos atuais notebooks ou laptops. Dynabook Em 1973, Robert Metcalfe criou o sistema de conectividade Ethernet para interligação de computadores em redes locais no centro de pesquisa da Xerox Corporation, em Palo Alto. Em 1975, Bill Gates e Paul Allen fundam a Microsoft. Em 1976, Steve Jobs, Steve Wozniak e Ronald Wayne fundam a Apple Computer Inc. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 21 / 40

Em 1977, há o lançamento do Apple II pela empresa Apple Computer Inc. Computador Apple II Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 22 / 40

Em 1981, há o lançamento pela IBM do microcomputador IBM 5150, que se tornou um padrão de computador pessoal. O computador tinha processador Intel 8088 de 4,77MHz, 64Kbytes RAM, uma unidade de disquetes de 5 1/4, sem disco rígido. A empresa Microsoft foi contratada para desenvolver o sistema operacional MS-DOS (Microsoft Operating System). Em 1984, a Apple lança o computador pessoal Macintosh. Computadores Apple Macintosh (1984, 1998 e 2007), respectivamente Em 1989, o número de computadores em uso no planeta ultrapassa 100 milhões de unidades. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 23 / 40

Em 1989, a Apple lança o Macintosh Portable, o primeiro computador com funcionamento por bateria. Macintosh Portable Em 1993, a NSF (National Science Foundation) criou a InterNIC (Internet Network Information Center), uma organização do Departamento de Comércio dos Estados Unidos responsável pelo registro de domínios utilizados na Internet. No ano de 1993, existiam mais de 1,5 milhão de hosts na Internet e mais de 100 países estavam conectados à rede. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 24 / 40

Em 1993, a Intel deu o nome Pentium a sua próxima geração de processadores, os quais utilizavam registradores de 32 bits, com 3,1 milhões de transistores. Em 1993, há o lançamento pela Apple do primeiro PDA (Personal Digital Assistant), o pioneiro dos computadores de mão. Em 1997, o termo telefone inteligente (smartphone) foi utilizado pela Ericsson para descrever seu aparelho GS 88 Penelope. Em 1998, Larry Page e Sergey Brin, dois estudantes de doutorado da University de Stanford, criaram a Google. Em 2001, a Apple lança o sistema operacional Mac OS X e o aparelho ipod. Em 2001, o aparelho Kyocera 6035, da Palm Inc., é lançado nos Estados Unidos, que é um dispositivo que combina um PDA com um telefone celular, sendo considerado um dos primeiros smartphones do mercado. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 25 / 40

Em 2003, a Research in Motion Limited (RIM) lança o smartphone BlackBerry. Em 2003, a plataforma aberta Android foi lançada por Andy Rubin, um dos fundadores da empresa Android Inc., que foi comprada pela Google em 2005. Em 2007, a Apple lança o dispositivo iphone, um dos primeiros telefones celulares com interface baseada em tela sensível a múltiplos toques. Em 2010, a Apple lança o aparelho ipad, um dispositivo portátil em formato de prancheta (tablet) que pode ser utilizado para acesso à Internet, leitura de livros e outros conteúdos digitais, entretenimento, visualização de fotografias, entre outras finalidades. Os dispositivos portáteis passam a se tornar cada vez mais populares, graças ao aprimoramento da tecnologia de baterias, processadores com baixo consumo de energia, barateamento das telas sensíveis ao toque, avanço das tecnologias de discos leves e com alta capacidade de armazenamento, facilidade de conectidade, entre outros fatores. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 26 / 40

Organização Básica de um Ambiente Computacional Computadores realizam tarefas complexas por meio de um número tipicamente grande de operações simples. Para gerenciar a complexidade das soluções, um ambiente computacional é organizado como uma hierarquia de funções, em que cada uma é responsável por uma tarefa específica. Programas de Aplicação Compiladores Sistema Operacional Hardware Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 27 / 40

Organização Básica de um Ambiente Computacional Programas de Aplicação: Como usuários, interagimos com os programas de aplicação. Nesta disciplina, desceremos nessa hierarquia para construir novos programas de aplicação. Para construir novos programas, uma forma seria escrever códigos binários diretamente executados por um computador. Uma maneira mais simples é escrever os programas em uma linguagem de programação com nível mais alto de abstração. Programas de Aplicação Compiladores Sistema Operacional Hardware Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 28 / 40

Organização Básica de um Ambiente Computacional Compiladores e Linguagens de Programação: Uma linguagem de programação é um conjunto de comandos que são mais próximos da linguagem humana do que os sinais digitais. Nesta disciplina, estamos interessados no estudo da linguagem de programação C. Um compilador é um programa que lê um código em uma linguagem de programação e converte as instruções em linguagem de máquina. for (i=0; i< 10; i++) loop: add c, a, b 0100 0010 0011 0101 0101 0100 0011 0110 c = a + b; add i, i,1 0110 0110 0111 0101 0101 0100 0011 0110 bnq i, 10, loop 1111 0000 0111 0101 0101 0100 0011 0110 Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 29 / 40

Organização Básica de um Ambiente Computacional Sistema Operacional: Um sistema operacional é um conjunto de programas cuja função principal é gerenciar os recursos do sistema (memória, processador, discos). Um sistema operacional deve permitir o uso eficiente e seguro do hardware pelos usuários. Exemplos de sistema operacional: Windows, Mac OS, Linux, Solaris. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 30 / 40

Algoritmos Algoritmo: sequência de passos, precisos e bem definidos, para a realização de uma tarefa. Algoritmos podem ser especificados de várias formas, inclusive em português. Algoritmos são independentes da configuração da máquina e do sistema operacional. Exemplo de algoritmo: Como calcular 2345 4567 usando lápis, papel e uma tabuada? Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 31 / 40

Programas Programa: sequência de instruções que descrevem uma tarefa a ser realizada por um computador. Programas são dependentes da configuração da máquina e do sistema operacional. Nesta disciplina, a linguagem C será utilizada para codificar os algoritmos em programas. Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 32 / 40

Linguagens de Baixo Nível Uma linguagem de baixo nível é uma linguagem de programação que consiste em instruções do processador segundo uma arquitetura do computador. Um exemplo é a linguagem Assembly, que opera diretamente com os registradores do processador. Um programa, chamado montador (assembler), transforma as instruções em código absoluto (código de máquina). LOOP: MOV A, 3 INC A JMP LOOP Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 33 / 40

Linguagens de Alto Nível Uma linguagem de alto nível é uma linguagem de programação com nível de abstração relativamente elevado, ou seja, mais distante do código de máquina e mais próxima à linguagem humana (português, inglês, etc). O programador de uma linguagem de alto nível não precisa conhecer características específicas do processador, como instruções e registradores. Embora mais compreensíveis pelos seres humanos, as linguagens de alto nível não são ambíguas. Um compilador transforma as instruções escritas na linguagem de alto nível em código de máquina. Exemplos de linguagens de alto nível: C Pascal Java Python Lisp Prolog Basic PHP Ada Perl Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 34 / 40

Primeiro Programa em C Um programa em C é um arquivo texto, contendo declarações e operações da linguagem. Isto é chamado de código fonte. Exemplo: #include <stdio.h> int main() { printf("hello, world!\n"); return 0; } Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 35 / 40

Como Executar um Programa Para executar um programa a partir do seu código fonte, deve-se primeiramente compilá-lo para gerar um código de máquina. O programa poderá ser executado como qualquer outro programa de aplicação. Exemplo de compilação e execução: $ gcc hello.c -o hello $./hello Hello, world! Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 36 / 40

Erros de Compilação Caso o programa não esteja de acordo com as regras da linguagem, erros de compilação ocorrerão. Compreender porque esses erros foram gerados é muito importante. #include <stdio.h> int main() { printf("hello, world!\n"); return 0; $ gcc hello.c -o hello hello.c: In function main : hello.c:5: error: expected declaration or statement at end of input Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 37 / 40

Erros de Execução Erros de execução ocorrem quando o comportamento do programa diverge do esperado e podem acontecer mesmo quando o programa compila corretamente. #include <stdio.h> int main() { printf("hello, world! $#%#@%\n"); return 0; } $ gcc hello.c -o hello hello.c: In function main : hello.c: warning unknown conversion type character @ in format hello.c: warning unknown conversion type character 0xa in format hello.c: warning unknown conversion type character @ in format hello.c: warning unknown conversion type character 0xa in format $./hello Hello, world! $#@ Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 38 / 40

Depurador Ferramenta que executa um programa passo-a-passo. O depurador ajuda a encontrar erros de execução. Exemplo: gdb Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 39 / 40

Outro Exemplo de Programa #include <stdio.h> int main() { int x, y; printf("x: "); scanf("%d", &x); printf("y: "); scanf("%d", &y); if (x > y) printf("o maior número é x = %d\n", x); else printf("o maior número é y = %d\n", y); return 0; } Instituto de Computação (UNICAMP) MC102 Primeiro Semestre de 2013 40 / 40