Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

31
Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo

Transcript of Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Page 1: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Introdução a Computação02.109-0 Turma B

1o. Semestre 2006

Prof. Sérgio D. Zorzo

Page 2: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Introdução a Computação

Objetivos Gerais da DisciplinaDar ao estudante uma noção geral da computação, visando a programação e resolução de problemas através de algoritmos.

Ementa da Disciplina1- Noções Fundamentais: Computador, Sistema

Operacional, Linguagem de Programação; 2- Algoritmos: Conceito, Representação Formal e

Desenvolvimento Estruturado; 3- Programas: Conceito e Desenvolvimento Sistemático.

Page 3: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Introdução a Computação

BibliografiaFarrer, H. et al. – Algoritmos Estruturados. Editora Guanabara Koogan, 2a. Edição, 1989. Rio de Janeiro, RJ.

Farrer, H. et al. – Pascal Estruturado. Editora Guanabara Koogan, 1989. Rio de Janeiro, RJ.

Ferrari, R. Curso de Introdução a Computação. DC-UFSCar, 2002.

Page 4: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Introdução a Computação

AvaliaçãoProvas:

P1 – 09/maio/2006 P2 – 27/junho/2006P3 – 04/julho/2006 (prova substitutiva - opcional)

Exercícios: Programas de Computador

Média Final = Média das duas melhores notas de Provas * 0,9 + Média dos Exercícios * 0,10

Será considerado aprovado o aluno commédia superior ou igual a 6,0 e frequência mínima de 75%

Page 5: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

IC- aula 1

Objetivos de aprendizado nesta aula

1. o conceito de algoritmo e de programa2. técnica básica para desenvolvimento de algoritmos3. a contextualização de algoritmos e programas em

relação à tecnologia atual e aos objetivos profissionais dos alunos

4. executar um programa exemplo

Page 6: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

1- Evolução Tecnológica dos Computadores

• manuais (ex. ábaco)

• mecânicos (ex. máquina de somar à manivela)

• eletrônica digital

válvulas e relés

transístores (semicondutores), Bell Labs., 1948

=> menor, menos consumo de energia

circuitos integrados (semicondutores)

=> menor ainda => computador de uso pessoal

Page 7: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

2- A Tecnologia Digital – o que é?

dispositivo analógico:funciona por analogia, por comparação, por proporção.

ex.: termômetro (varia a temperatura, varia a dilatação do mercúrio, ou corrente elétrica)ex.: válvula reguladora de pressão ou do escoamento de fluidos (varia a corrente enviada à válvula, varia a pressão ou escoamento de fluidos)

lida com grandezas contínuas

dispositivo digital: trabalha com as grandezas discretas e absolutas: "0"s

e "1"s, ligado e desligado, com corrente e sem corrente.

Page 8: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Bit e Byte

Bit (Binary Digit)Menor unidade de informação, que pode assumir um dentre dois estados: "0" ou "1".

Byte

Conjunto de 8 bits - capaz de identificar um caractere do alfabeto.

0

0 1 0 0 0 0 0 1

Page 9: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Representação de números em decimal (base 10) e em binário (base 2)

Representação decimal Representação binária

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

.... ....

Page 10: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Conversão binário-decimal e decimal-binário

binário --> decimal1101 = (2 3 * 1) + (2 2 * 1) + (2 1 * 0) + ( 2 0 * 1) = 8 + 4 + 0 + 1 = 13

decimal --> binário

13 2 1 6 2

0 3 21 1 2

1 0

resposta = restos das divisões sucessivas por 2, na ordem inversa => 1101

Page 11: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Representação de caracteres (alfabéticos e outros)

Caractere Representação em ASCII

A 01000001

B 01000010

C 01000011

...

+ 00101011

4 00100100

5 00100101

....

Page 12: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

Capacidades de representação

Variando o estado (0 ou 1) de cada bit de 1 byte, quantas combinações posso ter ?

21 = 2 22 = 4 23 = 8 24 = 16n 2n

8 (1 BYTE) 28 = 256 BITS

16 (2 BYTES) 216 = 65536 BITS

1 Kbyte (Kilobyte) = 1024 Bytes1Mbyte (Megabyte) = 1024 Kbytes1 Gbyte (Gygabyte) = 1024 MBytes

Page 13: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

3- Evolução dos Tecnológica dos

Computadores tendência inicial... com o tempo...

hardware: mainframes, grande porte ... microcomputadores

Capacidade de armazenamento:pequena .... cresceu muito

custo:$$$$$$$$$$$$$$$ ... $

Aplicações:científicas, grandes empresas... ... escritório, casa, escola

Page 14: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

3- Evolução dos Tecnológica dos

Computadores anos 80: microcomputadores,

várias arquiteturas, nenhuma padrão

IBM abriu a arquitetura ( IBM PC)

terceirizou a fabricação do sistema operacional ao estudante Bill Gates

virou padrão, aumentaram os fabricantes, a concorrência, competitividade, abaixou o custo...

Page 15: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

3- Evolução dos Tecnológica dos

Computadores Comparação

Mark I, 1944, 5 toneladas.ENIAC 1946 19.000 válvulas, consumia grande

energia, podia registrar um máximo de 20 números de até 10 dígitos. A programação era feita com com fios e pinos, como em um antigo painel de telefonista.

anos 80: XT 4,77 MHz, 20 Mbytes disco, 256 Kbytes RAM vídeo monocromático.

atualmente: Pentium 4 GHz, 1 GBytes RAM, 120 GBytes disco, DVD, ...

Page 16: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Computador:

Máquina capaz de executar processos de acordo com regras precisamente definidas. Existe um repertório finito de instruções elementares que o computador entende e é capaz de executar.

Os elementos desse repertório finito podem ser agrupados (ou programados) de modo a dar origem a um número infinito de combinações.

Exemplos:Música (composta pela combinação das 7 notas musicais)Representação decimal de números reais (a partir de dígitos de 0 a 9)Coreografia de um ballet clássico (a partir de um conjunto limitado de passos básicos).

Page 17: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Programação (de computadores, de uma coreografia, etc.)

É o ato de agrupar instruções em seqüências de forma que, quando seguidas, produzem um resultado esperado.

AçãoAcontecimento de duração finita, com um efeito previsível e bem definido.executada sobre um objeto.interesse é pelo efeito da ação no objeto.a ação leva o objeto de um estado inicial a um estado final.a execução de uma ação é chamada de processo.o agente que executa o processo é chamado de processador.

exemplo: descascar uma bananaação = descascar objeto = banana efeito = banana

descascada

contra-exemplos viver (duração indeterminada) disputar um jogo de azar (imprevisível)esperar (não parece algo bem definido)

Page 18: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Algoritmo:

(Abib) seqüência ordenada e sem ambiguidade de passos que levam à solução de um dado problema.

(Farrer) Descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.

(Catto e outros) Definição de um padrão de comportamento em termos de um conjunto finito, bem conhecido e bem definido de ações primitivas, que se supõe possam ser executadas sobre objetos bem determinados, produzindo o efeito desejado.

Page 19: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Linguagem de programação

Um conjunto finito, conhecido e bem definido de ações primitivas.

Programa

(Abib) Um algoritmo escrito numa linguagem de programação qualquer (Pascal, C, C++ etc.).

Page 20: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Técnica de desenvolvimento de algoritmos:

refinamentos sucessivos

Descrever o conjunto de ações que, executadas, levam à obtenção de um efeito desejado.

Se uma ação não pertencer ao conjunto das ações primitivas ela deverá ser decomposta em ações mais simples e específicas, e assim sucessivamente até que todas as ações pertençam ao conjunto de ações primitivas.

Problema 1: ensinar robô a fazer um bolo"Bata no liquidificador 2 cenouras, 4 ovos e 1 chícara de óleo. Já

na batedeira, adicione fermento e açucar a gosto. Leve ao forno como um bolo normal"

Page 21: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Problema 1: ensinar robô a fazer um bolo"Bata no liquidificador 2 cenouras, 4 ovos e 1 chícara de óleo. Já

na batedeira, adicione fermento e açucar a gosto. Leve ao forno como um bolo normal"

Identificar ambiguidades, indefinições e efeitos não previsíveis...

1º refinamentobata no liquidificador 2 cenouras, 4 ovos e 1 chícara de óleo por 2

minutos.colocar na batedeira e acrescentar um tablete de fermento e 1

chícara de açucar, bata por 3 minutos.leve ao forno por 1 hora.

Identificar indefinições...

Page 22: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Problema 1: ensinar robô a fazer um boloRefinamento do passo1

pegar o liquidificadorinserir 2 cenourasinserir 4 ovosinserir 1 chícara de óleoligar o liquidificadoresperar por 2 menutosdesligar o liquidificador

Identificar indefinições...

Refinamento do passo 1.1

Page 23: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Problema 1: ensinar robô a fazer um bolo

Refinamento do passo 1.1ir até o armárioabrir a porta do armárioestender as mãos até o liquidificadorsegurá-loir até a mesaposicionar o liquidificador sobre a mesasoltá-lo

e assim por diante... até que todas as ações possam ser compreendidas pelo robô.

Page 24: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

4- Conceitos Básicos sobre Programação

de Computadores Linguagens de programação - exemplos

PascalCC++Java

Fluxogramas

NS

Page 25: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

5- Hardware, Software, Aplicativos, Compiladores, Linguagens

Linguagens de programação: conjunto de ações primitivas e regras de sintaxe. Exemplos: pascal, C, C++

Compiladores e geradores de aplicações ou geradores de programas: programas que traduzem instruções de uma linguagem mais acessível ao homem (mais fácil) em uma linguagem compreendida pela máquina. Ex.: Turbo Pascal, Borland C++...

Hardware: máquinaSoftware: programasSistema Operacional: programa usado para controlar

funções básicas da máquina como gerenciamento do sistema de arquivos, gerenciamento da memória, etc. Exemplos: Windows, Unix, MacOS

Page 26: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

6- Exemplo de um Programa

program Exemplo; uses crt; var a,b, soma:integer; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); soma := a + b; writeln( a, ' + ', b, ' = ', soma ); writeln( 'pressione enter para continuar'); readln end.

Page 27: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

6- Exemplo de um Programa

program Exemplo; uses crt; var a,b, soma:integer; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); soma := a + b; writeln( a, ' + ', b, ' = ', soma ); writeln( 'pressione enter para continuar'); readln end.

Page 28: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

7- Atividade Extra-Classe: Executar e Alterar um Programa

O objetivo da atividade é "quebrar o gelo", ou seja, ter um primeiro contato com programação (aos alunos que ainda não tiveram), com a linguagem e com o compilador que serão utilizados neste curso.

Roteiro Vá até o laboratório e, tendo dificuldades, peça ajuda ao monitor.Execute o programa Turbo Pascal.Acione a opção File/New para criar um novo arquivo, digite (como em um

editor de texto) o programa dado como exemplo.Acione a opção Run para executar o programa.Altere o programa, segundo seus próprios critérios, e execute novamente.Execute outros programas-exemplo, eventualmente existentes no

laboratório.Consulte o "help" do turbo pascal e procure se familiarizar com o ambiente

de trabalho.Aqueles que pretendem estudar em seu próprio computador podem

adquirir e instalar uma versão completa do Turbo Pascal ou, alternativamente, copiar uma versão compacta do laboratório, que só poderá ser utilizada para fins de aprendizado e desenvolvimento de pesquisas.

Page 29: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

8- Temas para Debate

Quais podem ser as aplicações da informática na sua futura profissão?

Que conhecimentos de informática você precisa ter para manter a competitividade profissional?

Que contribuições este curso pode trazer para a sua formação?

Page 30: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

9- Exercícios de Fixação

O computador que você usa é dito ´digital´. O que é um dispositivo digital? Qual a diferença entre um dispositivo digital e um dispositivo analógico?

Qual a representação em binário dos decimais 7, 12 e 1240?Qual a representação decimal dos binários 11001 e 10111 ?Quantos caracteres distintos seria possível representar com

apenas 4 bits?O que significa 64 MBytes de memória?Qual a diferença entre armazenar uma informação na memória RAM

e armazenar uma informação no disco rígido?Que é um algoritmo?Que é um programa de computador?Qual a técnica básica para desenvolvimento de algoritmos?No contexto de programação, para que serve um fluxograma?Qual a diferença entre linguagem de programação e compilador?

Page 31: Introdução a Computação 02.109-0 Turma B 1o. Semestre 2006 Prof. Sérgio D. Zorzo.

10- Leituras Recomendadas

• Da aula 1, leia o Capítulo 0 do livro de Farrer e outros, "Algoritmos Estruturados“, bem como essas transparências.

• sobre o módulo 2, como preparação para a próxima aula, leia o Capítulo 1 de ambos os livros de Farrer e outros, entitulados "Ítens Fundamentais".