CURSO DE. Template <class GS> void Stack<GS>::push( G X X X X UTILIZADO NA UNIVERSIDADE FEDERAL DE SÃO CARLOS. Roberto Ferrari

Tamanho: px
Começar a partir da página:

Download "CURSO DE. Template <class GS> void Stack<GS>::push( G X X X X UTILIZADO NA UNIVERSIDADE FEDERAL DE SÃO CARLOS. Roberto Ferrari"

Transcrição

1 CURSO DE INTRODUÇÃO À COMPUTAÇÃO 2002 O Template <class GS> void Stack<GS>::push( G O O C A B UTILIZADO NA UNIVERSIDADE FEDERAL DE SÃO CARLOS Roberto Ferrari

2 CURSO DE INTRODUÇÃO À COMPUTAÇÃO ROBERTO FERRARI

3 Edição do autor. Copyright 1999, 2002 Roberto Ferrari. Todos os direitos reservados. Publicação não destinada à exploração comercial. Direitos autorais reservados. Informações adicionais com o autor. ferrari@dc.ufscar.br Ferrari, Roberto. Curso de introdução à Computação/ Roberto Ferrari - Sâo Carlos, p. Inclui bibliografia. 1. Programação. I. Título 3

4 APRESENTAÇÃO Este Curso de Introdução à Computação contém um resumo das notas de aula, exercícios, trabalhos e provas de anos anteriores. Seu objetivo não é substituir o livro texto, mas mostrar aos alunos o curso que os aguarda, possibilitando um planejamento prévio do estudo e do aprendizado. 4

5 CONTEÚDO Módulo 1- Algoritmos e Programas 6 Módulo 2- Elementos Fundamentais 14 Módulo 3- Estruturas de Dados 28 Módulo 4- Modularização 36 Módulo 5- Arquivos 40 Especificação dos trabalhos do curso 45 Provas de Anos Anteriores 48 Referências Bibliográficas 50 5

6 Módulo 1: Algoritmos e Programas Objetivos de aprendizado neste módulo... o conceito de algoritmo e de programa técnica básica para desenvolvimento de algoritmos a contextualização de algoritmos e programas em relação à tecnologia atual e aos objetivos profissionais dos alunos executar um programa exemplo Texto base para este módulo: Farrer e outros, "Algoritmos Estruturados", cap 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 2- A Tecnologia Digital diferença: analógico digital 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. 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 bi byte 6

7 Representação de números em decimal (base 10) e em binário (base 2) representação decimal representação em binário Conversão binário-decimal e decimal-binário binário --> decimal 1101 = (2 3 * 1) + (2 2 * 1) + (2 1 * 0) + ( 2 0 * 1) = = 13 decimal --> binário resposta = restos das divisões sucessivas por 2, na ordem inversa => 1101 Representação de caracteres (alfabéticos e outros) Capacidades de representação caractere representação em ASCII A B C

8 Variando o estado (0 ou 1) de cada bit de 1 byte, quantas combinações posso ter? 2 8 = 256 N 2 N 8 (1 byte) ,2 x Kbyte (Kilobyte) = 1024 Bytes 1Mbyte (Megabyte) = 1024 Kbytes 1 Gbyte (Gygabyte) = 1024 MBytes 3- Evolução dos Tecnológica dos Computadores - Continuação tendência inicial... com o tempo... hardware mainframes, grande porte microcomputadores capacidade pequena cresceu muito custo $$$$$$$$$$$$$$$ $ aplicações científicas, grandes empresas escritório, casa, escola 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... Comparação Mark I, 1944, 5 toneladas. ENIAC 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: T 4,77 MHz, 20 Mbytes disco, 256 Kbytes RAM vídeo monocromático. atualmente: Pentium 600 MHz, 64 Mbytes RAM, 6 Gbytes disco, CD, video SVGA color Conceitos Básicos sobre Programação de Computadores 1 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). 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. 1 alguns conceitos e exemplos foram adaptados do texto experimental de Catto e outros, de data desconhecida 8

9 Ação Acontecimento 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 banana açã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) Ações primitivas São ações que o processador é capaz de entender e executar (sobre objetos bem determinados). 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. 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.). 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" Identificar ambiguidades, indefinições e efeitos não previsíveis... 1º refinamento 1. bata no liquidificador 2 cenouras, 4 ovos e 1 chícara de óleo por 2 minutos. 2. colocar na batedeira e acrescentar um tablete de fermento e 1 chícara de açucar, bata por 3 minutos. 9

10 3. leve ao forno por 1 hora. Identificar indefinições... Refinamento do passo1 1. pegar o liquidificador 2. inserir 2 cenouras 3. inserir 4 ovos 4. inserir 1 chícara de óleo 5. ligar o liquidificador 6. esperar por 2 menutos 7. desligar o liquidificador Identificar indefinições... Refinamento do passo ir até o armário 2. abrir a porta do armário 3. estender as mãos até o liquidificador 4. segurá-lo 5. ir até a mesa 6. posicionar o liquidificador sobre a mesa 7. soltá-lo e assim por diante... até que todas as ações possam ser compreendidas pelo robô. Problema 2 (introdução ao conceito de variáveis, em um programa) : "programar o robô, de modo que este aprenda a fazer o tal bolo em diferentes quantidades - para 3 pessoas, para 10, etc. solução: Seja o nº de cenouras, Y o nº de ovos, e Z o nº de chícaras de óleo. Descrever o algoritmo em função de, Y e Z. Definir, Y e Z no momento da execução do processo. Problema 3 (introdução ao conceito de tipos de dados e de linguagem de programação): Sejam conhecidos os seguintes tipos, ações e regras: tipo coisa = sacola, panela, liquidificador, batedeira tipo fruta = banana, mamão, laranja, maçã, goiaba ação pegar descascar guardar válida sobre objetos do tipo... coisa, fruta fruta coisa, fruta Exemplos de ações (verificar se são válidas): pegar panela descascar banana descascar sacola (não) descascar pera (não) etc. Linguagems de programação - exemplos Pascal C C++ Fluxograma (flowchart) S N 10

11 Uma outra forma de descrever algoritmos. Mostra o "fluxo" (seqüência) de ações, e seus relacionamentos com os objetos que estão sendo processados 5- Hardware, Software, Aplicativos, Compiladores, Linguagens Contextualizando o conceito de algoritmos e programas na tecnologia atual... IBM PC MAC Sun Sparc Station AS 400 windows 98 windows NT Unix MacOS C++ Pascal Java Borland C++ Turbo Pascal sistema para clínicas médicas folha de pagamentos contabilidade SAP Delphi access oracle netscape director video maker sybase informix RAM disco rígido CD ROM scanner bug do ano 2000 virus hacker hardware sistema operacional software 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áquina Software: programas Sistema 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 11

12 Memória RAM: memória temporária (as informações se perdem assim que o equipamento é desligado) Disco rígido, CD ROM, Floppy disc: armazenam informações mesmo após desligar o equipamento. Dispositivos de entrada de informações: teclado, mouse, scanner... Dispositivos de saída: vídeo, auto-falante, impressora 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. d b l 0 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 1. Vá até o laboratório e, tendo dificuldades, peça ajuda ao monitor. 2. Execute o programa Turbo Pascal. 3. Acione a opção File/New para criar um novo arquivo, digite (como em um editor de texto) o programa dado como exemplo. 4. Acione a opção Run para executar o programa. 5. Altere o programa, segundo seus próprios critérios, e execute novamente. 6. Execute outros programas-exemplo, eventualmente existentes no laboratório. 7. 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. 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? 9- Exercícios de Fixação 1. 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? 2. Qual a representação em binário dos decimais 7, 12 e 1240? 3. Qual a representação decimal dos binários e 10111? 12

13 4. Quantos caracteres distintos seria possível representar com apenas 4 bits? 5. O que significa 64 MBytes de memória? 6. Qual a diferença entre armazenar uma informação na memória RAM e armazenar uma informação no disco rígido? 7. Que é um algoritmo? 8. Que é um programa de computador? 9. Qual a técnica básica para desenvolvimento de algoritmos? 10. No contexto de programação, para que serve um fluxograma? 11. Qual a diferença entre linguagem de programação e compilador? 10- Leituras Recomendadas sobre o módulo 1, leia o Capítulo 0 do livro de Farrer e outros, "Algoritmos Estruturados". 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". 13

14 Módulo 2: Elementos Fundamentais Objetivos de aprendizado neste módulo... apresentar ao estudante os elementos básicos de um programa: variáveis, tipos, estruturas de controle, entrada e saída, etc. praticar o desenvolvimento de algoritmos com a utilização de tais elementos Texto base para este módulo Farrer e outros, "Algoritmos Estruturados", cap. 1. Farrer e outros, "Pascal Estruturado", cap. 1. Tópicos 1. Constantes, variáveis e tipos Identificadores Tipos de dados Declaração de variáveis Declaração de constantes Declaração de tipos 2. Comentários 3. Comandos de atribuição, entrada e saída Atribuição Comandos de entrada Comandos de saída 4. Expressões Expressões aritméticas Expressões lógicas 5. Estruturas básicas de controle Estrutura seqüencial Estrutura condicional Estrutura de repetição 1- Constantes, variáveis e tipos Conceito de variável => => constantes: 4, 3, 9 2 contém vinho Y 4 Y contém água 14

15 => variáveis: Variáveis podem assumir diversos valores... em uma equação aritmética, pode assumir diversos valores. uma variável pode ser comparada a um copo que pode receber água ou vinho (ou outro líquido), ou ainda a uma caixinha que pode abrigar diferentes objetos. exemplo de utilização em um programa: pode representar o número de colheres de fermento em um bolo, Y o número de ovos e Z o nº de bananas Identificadores Variáveis são identificadas por nomes, ou identificadores. Nos exemplos acima, é um identificador. Em Pascal os identificadores podem ser formados basicamente por... uma combinação de letras a-z, A-Z e números 0-9 não pode começar com número não pode usar uma palavra reservada do Pascal (como read, write, program..) Turbo Pascal permite a utilização do caractere especial _ (underscore) nenhum outro caractere ( +, -, *, &, $ etc..) pode ser utilizado em um identificador, Pascal não faz diferença entre letras maiúsculas e minúsculas. Exemplos de identificadores válidos Aluno A34 NotaDoAluno Exemplos de identificadores não válidos 23 Nota do Aluno 1treco 1.2- Tipos de Dados Recordação tipo coisa = sacola, panela, liquidificador, batedeira tipo fruta = banana, mamão, laranja, maçã, goiaba ação pegar descascar guardar válida sobre objetos do tipo... coisa, fruta fruta coisa, fruta O que é um tipo? Um tipo define um padrão de comportamento para constantes e variáveis. Por exemplo, objetos do tipo fruta podem ser descascados, objetos do tipo coisa não. 15

16 Principais tipos pré-definidos no Pascal tipo descrição faixa exemplos de constantes desse tipo Integer valores inteiros a (2 bytes) 01, 12, -15, Real valores reais +/ (4 bytes) 2.43, , 1x10 6, etc Char um caractere qualquer caractere A, C, 8, &, *,, -, etc String[size] cadeia de qualquer cadeia que caiba String[3] = ABC, 6T$, o,.. caracteres no tamanho definido String[5] = a,, pares,.. Boolean valores lógicos True, False True, False Cada variável é definida como sendo de um tipo específico, e pode assumir somente valores válidos a esse tipo. se é do tipo Integer, pode assumir valores inteiros: 2, 15, 5555, -4, etc. se é do tipo Boolean, pode assumir os valores True ou False etc Declaração de variáveis Podemos definir variáveis através da seguinte declaração: Exemplos: Var : Integer; Var Y, Z : Real; Var Disciplina : String[10]; Var Turma : Char; Var Status : Boolean; Var lista de identificadores : tipo ; 1.4- Declaração de constantes É possível definir novas constantes através da seguinte declaração Exemplos: Const NumerodeBananas = 10; Const Pi = 3,1416; Const Status = False; Const Tamanho = 30; Const Nome = Jose da Silva ; Const Turma = C ; Const identificador : valor ; 1.5- Declaração de tipos É possível acrescentar novos tipos de dados (como tipo fruta, tipo coisa etc.) ao conjunto de tipos conhecidos do Pascal (Integer, Real etc.). Esse tema será tratado posteriormente. 2- Comentários Podemos inserir comentários em um programa, sob a forma de texto, sem que isso interfira em sua lógica. O objetivo dos comentários é proporcionar maior clareza ao programa. Comentários podem ser expressos da seguinte forma. { texto } 16

17 ou ainda (* texto *) Exemplos: Var NomeDoIndividuo : String[ 20 ] ; { armazena o nome do indivíduo } Var EstadoCivil : Boolean; { True significa casado, False solteiro } 3- Comandos de atribuição, entrada e saída 3.1- Comando de atribuição É possível atribuir um valor qualquer a uma variável. valor atribuído pode ser um valor constante, o valor de uma variável ou ainda o valor de uma expressão. valor atribuído precisa ser compatível com o tipo da variável. O comando de atribuição é expresso da seguinte forma: identificador := expressão ; onde a expressão pode simplesmente ser uma constante ou variável. Exemplos: Var : Integer; Var Y, Z : Real; Var Disciplina : String[10]; Var Turma : Char; Var Status : Boolean; {casos válidos } := 5; := + 1; Y := Z; Z := Y ; Turma := B ; Status := True; Disciplina := Química I ; { Casos não válidos } := Y; Z + Y := 5; 5 := ; Y Z 2 4, Comandos de entrada Entrada de dados, ou ainda leitura de dados, seria análogo a atribuir a uma variável um valor obtido externamente. O exemplo mais natural para leitura de dados é pedir ao usuário fornecer valores via teclado. Mas pode-se também ler dados de arquivos, ou ainda de outros dispositivos de entrada. Considerando-se a entrada de dados via teclado, os comandos seriam: ou ainda Read ( identificador ); 17

18 Readln ( identificador ) ; Observações: A diferença entre ambos é que o Readln considera que a próxima leitura, se houver, será realizada na linha seguinte. Não é possível ler variáveis do tipo Boolean. Na verdade é possível usar um único comando Read ou Readln para ler uma lista de identificadores. Exemplos: { considere as seguintes variáveis } Var : Integer; Var Y, Z : Real; Var Disciplina : String[10]; Var Turma : Char; Var Status : Boolean; { casos válidos } Read ( ); Read ( Y ); Readln ( Z ); Readln ( Disciplina ); Read ( Turma ); Readln(, Y, Z ); { casos não válidos } Read ( Status ); Read( 55 ); 3.3- Comandos de saída A saída de dados significa mostrar tais dados em um dispositivo de saída, como vídeo, impressora ou arquivo. A forma mais simples de saída de dados ocorre quando se escreve valores de variáveis, constantes ou expressões no vídeo. Considerando-se a saída de dados no vídeo, os comandos seriam: ou ainda Write ( lista de identificadores, constantes ou expressões ); Writeln (lista de identificadores, constantes ou expressões) ; Observações: A diferença entre ambos é que o Writeln escreve a lista de valores e considera que a próxima operação de escrita, se houver, será realizada na linha seguinte. Exemplos: { considere as seguintes variáveis } Var : Integer; Var Y, Z : Real; Var Disciplina : String[10]; Var Turma : Char; Var Status : Boolean; 18

19 { casos válidos } Write ( ); Write ( O valor de é:, ); Writeln ( pressione uma tecla para continuar ); Writeln ( A soma de, Y, com, Z, resulta em, Y + Z ); Writeln ( Disciplina, -, Turma ); { casos não válidos } Writeln ( O valor de é ); Writeln ( Y Z ); Writeln (, Y, Z ); { válido porém os espaços não aparecem } Formatação de saída Opcionalmente, os comandos de saída podem ser expressos da seguinte forma: Write ( p1, p2, p3 pn ); ou ainda Writeln ( p1, p2, p3 pn ) ; Cada parâmetro pi sendo expresso em uma das 3 formas abaixo e e:e1 e:e1:e2 Onde e é uma expressão (que pode ser simplesmente uma constante ou variável). e1 é um valor inteiro positivo que indica o número de caracteres que será utilizado na escrita de e. e2 é um inteiro positivo que determina o número de casas decimais que devem ser utilizadas na escrita de e (que, neste caso, só pode ser do tipo Real). Exemplos: Var : Integer; Var Y, Z : Real; Var Disciplina : String[10]; Var Turma : Char; { casos válidos } Write ( :1 ); { se vale 5, a saída será: 5 } Write ( :4 ); { se vale 5, a saída será: 5 } Writeln ( Y:6:2, Z:6:2 ); { 6 caracteres, 2 casas decimais } Writeln ( Disciplina:10, -, Turma:4 ); { casos não válidos } Writeln ( :5:2 ); 4- Expressões conceitos A + B A e B são operandos + é o operador Seno ( ) Seno é uma função A < B < é uma relação 19

20 4.1- Expressões aritméticas Operadores *, /, DIV, MOD { maior prioridade } +, - Observações DIV = divisão inteira e MOD = resto da divisão inteira. A prioridade pode ser alterado com o uso de ( e ). Funções Ln( x ) Logaritmo neperiano real Exp( x ) Número e elevado a x Real Abs( x ) Valor absoluto Integer ou real Trunc( x ) Pega a parte inteira Integer Round( x ) Arredonda Integer Sqr( x ) Quadrado de x Real ou integer Sqrt( x ) Raiz quadrada de x Real Sin( x ) Seno de x Real Cos( x ) Co-seno Real Arctan( x ) Arco tangente Real Exemplos: 11 DIV 4 11 MOD 4 2 * + 10 (A + B) * C / N + Sqr ( Z ) 4.2- Expressões lógicas Relações =, <>, <=, >=, <, > Operadores AND, OR, NOT Expressões lógicas podem envolver expressões aritméticas. Neste caso, a prioridade de execução obedece a seguinte tabela: Prioridade Operadores 1a NOT 2a *, /, DIV, MOD, AND 3a +, -, OR 4a =, <>, <, <=, >=, > Exemplos: A < B A = B A = 0 2 = 6 D <> 6 (A = 1) AND ( (B + C <> 0) OR (K <=2) ) NOT ( (total >= 5) AND (A <> B) ) OR Teste 20

21 5- Estruturas básicas de controle Estruturas de controle: Controlam a (ordem, seqüência de) execução de um programa Estruturas básicas Estrutura seqüencial Estrutura condicional Estrutura repetitiva 5.1- Estrutura seqüencial Os comandos de um programa são executados na seqüência em que aparecem. Um programa Pascal segue a sintaxe definida abaixo. Program identificador; Declarações Comandos End. Exemplo de um programa Pascal program Exemplo1; { faz a soma de dois inteiros } uses crt; { crt = biblioteca de funções. Na prática, acrescenta novos comandos ao elenco de comandos do Pascal } var a,b,soma:integer; { declara as variáveis a, b e soma } begin clrscr; { limpa a tela, comando da biblioteca crt } write('a= '); readln(a); write('b= '); readln(b); soma := a + b; { soma recebe o valor de A + B } writeln( a, ' + ', b, ' = ', soma ); writeln( 'pressione enter para continuar'); readln end Estrutura condicional A estrutura condicional simples é expressa da forma: If condição Then comando ; Neste caso, o comando só seria executado se a condição for verdadeira. A estrutura condicional composta é expressa da forma abaixo: 21

22 If condição Then comando1 Else comando2; Se a condição for verdadeira, o comando1 é executado. Caso contrário será executado o comando2. Exemplos: If A > B Then C := A; If A < B Then C := A Else C := B; If C <> 0 Then C := C + 1 Else If A > C Then C := A; Agrupamento de comandos É possível agrupar comandos em blocos da forma abaixo: Comando 1 Comando 2 comando n End; Além de agrupar comandos, e End podem funcionar como uma espécie de parêntesis, alterando o controle da execução do programa ou ainda resolvendo ambiguidades. Exemplos: If C <> 0 Then B := C; Read( C ); G := Sqr( C ); Writeln( B, C, G ); End Else If A > C Then C := A; If C <> 0 Then If A > B Then C := A Else C := B; End; Definição: Identação Significa alinhar os comandos de forma a facilitar a visualização do programa, como nos exemplos acima. Exercícios para fazer durante a aula Resolva as questões abaixo com a técnica de refinamentos sucessivos. Refine até chegar a um programa Pascal. 1. Ler três valores inteiros e determinar o menor deles. 22

23 2. Ler dois valores A e B, troque os valores e escreva A e B. 3. Ler o preço de venda de um produto, o seu preço de custo. Calcular o imposto a ser pago (30% sobre o lucro). 4. Ler cinco valores inteiros e escrever os dois maiores. 5. Ler três valores reais e escrevê-los em ordem crescente. 6. Faça um programa chamado Calculadora, onde o usuário fornece dois valores e o operador ( um dentre +, -, * e /), e o programa faz a conta. Atividades extra classe Já é possível fazer o primeiro trabalho Já é possível fazer vários dos exercícios propostos no capítulo 1 do Farrer. Ler sobre estruturas de repetição Resolução dos exercícios de aula Exercício 1: Ler três valores inteiros e determinar o menor deles. Algoritmo Program EscolheMenor; 1. declare 3 inteiros A, B e C e um 4 inteiro Menor Var A, B, C, Menor : Integer; 2. Leia A, B e C Write( forneça A ); Readln( A ); Write( forneça B ); Readln( B ); Write( forneça C ); Readln( C ); 3. Menor! A Menor := A; 4. Se C < Menor If C < Menor Então Menor! C Then Menor := C; 5. Se B < Menor If B < Menor Então Menor! B Then Menor := B; 6. Escreva o Menor Writeln ( O menor valor é:, Menor ); End. Exercício 2: Ler dois valores A e B, troque os valores e escreva A e B. " para trocar o valor de duas variáveis é preciso usar uma terceira variável como auxiliar. Algoritmo Program Troca; 1. declare inteiros A, B e auxiliar Var A, B, Auxiliar : Integer; 2. Leia A e B Write( forneça A ); Readln( A ); Write( forneça B ); Readln( B ); 3. Salve o valor de A em Auxiliar Auxiliar := A; 4. Passe o valor de B para A A := B; 5. Passe o valor de Auxiliar para B B := Auxiliar; 6. Escreva os valores A e B Writeln ( Novo A =, A:6, Novo B =, B:6 ); End. Exercício 3: Ler o preço de venda de um produto e o seu preço de custo. Calcular o imposto a ser pago (30% sobre o lucro). Algoritmo Program Leao; 1. declare PrecoVenda, Custo, Lucro, Imposto Var PrecoVenda, Custo, Lucro, Imposto : Real; 2. Leia PrecoVenda e Custo Write( forneça o Preco de Venda ); Readln( PrecoVenda ); Write( forneça o custo ); Readln( Custo ); 3. Calcule Lucro = PrecoVenda - Custo Lucro := PrecoVenda Custo; 4. Calcule Imposto = Lucro x 30% Imposto = Lucro * 0,3; 5. Escreva o imposto a ser pago Writeln ( O imposto a ser pago =, Imposto:10:2 ); End. 23

24 Exercício 4: Ler cinco valores inteiros e escrever os dois maiores. " Vamos usar duas variáveis auxiliares, Maior1 e Maior2, para indicar o primeiro e o segundo maior. " Maoir1 e Maior2 começam com os valores de A e B ( ou B e A, o que for apropriado). " Vamos passar pelos 3 valores restantes primeiramente verificando se eles são maiores que o segundo maior. Se forem, o Maoir2 deve ser atualizado. A seguir verificamos se o Maior2 é maior que o Maior1. Se for, devemos trocar os valores. Algoritmo Program DoisMaiores; 1. declare A, B, C, D, E, Maior1, Maior2 Var A, B, C, D, E, Maior1, Maior2 : Real; 2. Leia os 5 valores Write( forneça A: ); Readln( A ); { idem para B, C, D e E } 3. Escolhe o maior entre A e B e atribui a If A > B Maoir1, o outro valor vai para Maior2 Then Maior1 := A; Maior2 := B; End Else Maior1 := B; Maior2 := A; 4. Verifique se C é maior que Maior2, se for, Atualiza maior2 com C. Se Atualizou, verifique se Maior2 é maior que Maior1: se for, troque. Obs.: repetir o processo para D e E End; If C > Maior2 Then Maior2 := C; If Maior2 > Maior1 Then { troca, ver exercício 2 } End; { idem para D e E } 5. Escreva os 2 maiores Writeln ( O maoir é:, Maior1:8:2, e o 2o maior é:, Maior:8:2 ); End. Exercício 5: Ler três valores reais e escrevê-los em ordem crescente. " uma das maneiras de resolver este problema é através de expressões lógicas. Algoritmo 1- declare a, b, c 2- leia a, b, c 3- se A >= B e A >= C então se B >= C então escreva A, B, C senão escreva A, C, B 4- senão se B >= A e B >= C então se A >= C então escreva B, A, C senão escreva B, C, A senão se A >= B então escreva C, A, B 24

25 senão escreva C, B, A Exercício 6: Faça um programa chamado Calculadora, onde o usuário fornece dois valores e o operador ( um dentre +, -, * e /), e o programa faz a conta. " o principal desafio deste exercício é a escolha do operador que será utilizado. Para isso, podemos usar um conjunto de if s aninhados. Algoritmo 1- declare A, B inteiros, Resultado Real e Operador tipo caractere 2- leia A, B e Operador 3- de acordo com o operador lido, execute A + B, A B, A * B ou A / B. Atualiza Resultado 4- escreva o resultado Refinamento 3 Se Operador = + Éntão Resultado! A + B Senão Se Operador = - Éntão resultado! A B Senão se Operador = * Éntão Resultado! A * B Senão se Operador = / e B <> 0 Éntão resultado! A / B Senão resultado! 0 Refinamento 4 Writeln( A:5, Operador:3, B:5, =, Resultado:7:2 ); 5.3- Estrutura repetitiva A estrutura repetitiva permite que uma seqüência de comandos sejam executados um número determinado de vezes, ou até que uma condição seja (ou deixe de ser) satisfeita. A estrutura repetitiva pode ser expressa de 3 maneiras: " comando For, " comando Repeat e " comando While. For identificador := valor1 To/Downto valor2 Do { escolher entre To e Downto } comando ; { ou bloco de comandos, usando e End } " Note que o comnando For executa um número determinado de vezes, dependendo apenas de valor1 e valor2. Exemplo: fatorial de N (inteiro maior que 1) Readln( N ); Fat := 1; For I := N downto 1 do Fat := Fat * I; Writeln( O fatorial de, N:5, é, Fat : 5 ); Repeat Comando1 25

26 Comando2 Comandon Until condição; { não precisa usar e End para delimitar o bloco de comandos } " Note que o comando Repeat executa Comando1, Comando2 etc. pelo menos uma vez, pois a condição de parada é no fim. " Note também que se a condição de parada nunca ocorrer, o comando nunca será encerrado. Diz-se que o programa entra em loop. " Ao contrario do For, o número de repetições pode não ser determinado Exemplo: ler uma lista de valores (e fazer alguma coisa com eles) até encontrar um valor inválido. Total := 0; NroElementos := 0; Writeln( Digite os elementos. Querendo acabar, digite ); Repeat Readln( Elemento ); If Elemento <> Then NroElementos := NroElementos + 1; Total := Total + Elemento; End; Until Elemento = 99999; Media := Total / NroElementos; Writeln ( A média dos, NroElementos:4, que você digitou é, Media:7:2 ); While Condição Do Comando; { ou bloco de comandos, usando begin e end } " A diferença entre o While e o Repeat é que no While a condição de parada é no início. Assim, pode ser que o Comando não seja executada nem uma vez. Exemplo: ler uma lista de valores (e fazer alguma coisa com eles) até encontrar um valor inválido. Total := 0; NroElementos := 0; Writeln( Digite os elementos. Querendo acabar, digite ); Readln( Elemento ); While Elemento <> Do NroElementos := NroElementos + 1; Total := Total + Elemento; Readln( Elemento ); End; Media := Total / NroElementos; Writeln ( A média dos, NroElementos:4, que você digitou é, Media:7:2 ); Exercícios para fazer durante a aula (continuação) " Resolva as questões abaixo com a técnica de refinamentos sucessivos. Pense na solução do problema, descreva e refine até chegar a um programa Pascal. 7. Ler uma taxa de juro Taxa (tipo 1,3% ao mes) e calcular o valor final de um valor aplicado Valor após Meses meses. 8. Calcule o fatorial de N com While e com Repeat (com For já fizemos) 9. Uma pesquisa sobre dados da população anotou o sexo, a cor dos cabelos e a idade das pessoas. Leia um conjunto de valores (sexo, idade, cor do cabelo) e determine: 26

27 a maior idade percentual de homens e mulheres quanto porcento das mulheres são loiras 10. Fazer um programa que ofereça opções ao usuário (exemplo da calculadora: soma, subtração, multiplicação e divisão, e sair do programa). O usuário escolhe. Se a opção for válida, executa; se for inválida da uma mensagem de erro ao usuário. Fica oferecendo ao usuário e (eventualmente) executando até que este escolha a opção para sair do programa. 11. Faça um programa para calcular as contas de água de uma cidade. O valor da conta para consumo até 500 mil litros é 0.04 * consumo (em mil litros). O valor da conta para consumo maior que 500 mil litros é 0.06 * consumo (em mil litros). Os dados serão lidos da forma abaixo. Rua São Sebastião Nro da casa, consumo Nro da casa, consumo Nro da casa, consumo Rua Celso Junqueira Nro da casa, consumo Nro da casa, consumo Nro da casa, consumo Etc. Exercícios de Fixação: já dá para fazer todos os do capítulo 1 do Farrer. 27

28 Módulo 3: Estruturas de Dados Objetivos de aprendizado neste módulo... apresentar ao estudante os conceitos de variáveis compostas homogêneas (vetores, matrizes) e heterogêneas (registros) praticar o desenvolvimento de algoritmos com a utilização de tais conceitos Texto base para este módulo Farrer e outros, "Algoritmos Estruturados", seções 2.1, 2.2 e 2.3. Farrer e outros, "Pascal Estruturado", seções 2.1, 2.2 e 2.3. Tópicos 1. conceito de variáveis estruturadas (variáveis compostas) 2. variáveis compostas homogêneas unidimensionais - vetores 3. variáveis compostas homogêneas bidimensionais - matrizes 4. variáveis compostas homogêneas multidimensionais 5. variáveis compostas heterogêneas - registros 1- conceito de variáveis estruturadas (variáveis compostas) Variável estruturada (ou composta): conjunto de dados referenciável por um mesmo identificador Vetor V Matriz M Nome Nº P1 P2 Sub média Roberto Registro R 28

29 Variáveis compostas podem ser Homogêneas = todos os elementos do conjunto são do mesmo tipo Unidimensionais = vetores Bidimensionais = matrizes multidimensionais = N dimensões Heterogêneas (registros) = os elementos do conjunto são de tipos diferentes 2- Variáveis compostas homogêneas unidimensionais - vetores Declaração: Var identificador : Array [Li..Lf] of tipo ; Vetor V Onde: Li = limite inferior (valor inteiro) Lf = limite superior (valor inteiro) Exemplos: Var Vetor : Array [ ] of Integer; Vetor Var Vet1 : Array [ ] of Char; Vet1 A D G H + - L N * R Y U I O $ P U Y Var Vet2 : Array [ ] of String [ 5 ] ; Vet2 ICO Ratos ASDFG TT #$% *

30 Referência a todo o vetor Atribuição de um vetor para o outro Exemplo V1 := V2; { V1 do mesmo tipo que V2, todos os valores de V1 recebem seus equivalentes em V2 } Referência a um único elemento do vetor Atribuição Leitura Uso em expressões Exemplos: V1 [ 5 ] := 2; { sendo V1 um vetor de inteiros } V1 [ 5 ] := V1 [ 2 ] + 30; V1 [ I + 1 ] := V1 [ I ]; Read ( V1 [ 1 ] ); Write ( V1 [ I ] ); For I := 1 to N do Read ( V1 [ I ] ) ; Exemplo de uso: fazer um programa para ler 50 valores, armazená-los em um vetor, calcular e escrever a média dos valores. Algoritmo 1- declare variáveis Soma, Média, Vetor, I 2- leia os elementos, armazenando-os no vetor 3- calcule a média 4- escreva a média Refinamento 2: leia os elementos For I := 1 to 50 do Write( Entre o valor para Vetor [, I, ] ` ); Readln ( Vetor [ I ] ); End; Refinamento 3: calcule a média Soma := 0; For I := 1 to 50 do Soma := Soma + Vetor [ I ]; Media := Soma / 50; Programa Program Calcula_Media; Var I : integer; Soma, Media : Real; Vetor : Array [ ] of Integer; { 2- leitura dos elementos } For I := 1 to 50 do Write( Entre o valor para Vetor [, I, ] ` ); Readln ( Vetor [ I ] ); 30

31 End; { 3- cálculo da média } Soma := 0; For I := 1 to 50 do Soma := Soma + Vetor [ I ]; Media := Soma / 50; { 4- escrevendo a média } Writeln ( A média dos elementos é, Média ); Readln; End. 3- Variáveis compostas homogêneas bidimensionais - matrizes Declaração: Matriz M Var identificador : Array [Li..Lf, Li, Lf ] of tipo ; Onde: Li = limite inferior (valor inteiro) Lf = limite superior (valor inteiro) Exemplos: Var Matriz : Array [ 1.. 3, ] of Integer; Matriz Referência a toda matriz Atribuição de uma matriz para outra Exemplo M1 := M2; { M1 do mesmo tipo que M2, todos os valores de M1 recebem seus equivalentes em M2 } Referência a um único elemento da matriz Atribuição Leitura Uso em expressões Exemplo: V1 [ 1, 2 ] := 2; { sendo V1 um vetor de inteiros } V1 [ 2, 1 ] := V1 [ 2, 2 ] + 30; V1 [ I + 1, j ] := V1 [ I, j ]; Read ( V1 [ I, j ] ); Write ( V1 [ I, j ] ); For I := 1 to N do For J := 1 to M do 31

32 Write ( Entre o elemento M [, I,,, j, ] ); Readln ( M [ i, j] ) ; End; Exemplo de uso: fazer um programa para ler 2 matrizes 5 x 4, calcular e escrever a matriz soma entre elas. Algoritmo 1- declare variáveis Matrizes A, B e Soma, I e j inteiros 2- ler a matriz a 3- ler a matriz b 4- calcule a matriz soma 5- escreva a matriz soma Refinamento 2: leia a matriz A For I := 1 to 5 do For J := 1 to 4 do Write ( Entre o elemento A [, I,,, j, ] ); Readln ( A [ i, j] ) ; End; Refinamento 3: leia a matriz B For I := 1 to 5 do For J := 1 to 4 do Write ( Entre o elemento B [, I,,, j, ] ); Readln ( B [ i, j] ) ; End; Refinamento 4: calcule a matriz soma For I := 1 to 5 do For J := 1 to 4 do Soma [ I, j ] := A [ I, j ] + B [ I, j ] ; Refinamento 5: escreva a matriz soma For I := 1 to 5 do begin For J := 1 to 4 do Write ( Soma [ I, j ] : 6 ); Writeln ( ) ; End; { muda de linha} Programa Program Soma_matrizes; Var I, j : integer; A, B, Soma : array [ 1..5, 1..4 ] of integer; { lendo a matriz A } For I := 1 to 5 do For J := 1 to 4 do Write ( Entre o elemento A [, I,,, j, ] ); Readln ( A [ i, j] ) ; End; 32

33 { Refinamento 3: leia a matriz B } For I := 1 to 5 do For J := 1 to 4 do Write ( Entre o elemento B [, I,,, j, ] ); Readln ( B [ i, j] ) ; End; { Refinamento 4: calcule a matriz soma } For I := 1 to 5 do For J := 1 to 4 do Soma [ I, j ] := A [ I, j ] + B [ I, j ] ; { Refinamento 5: escreva a matriz soma } For I := 1 to 5 do begin For J := 1 to 4 do Write ( Soma [ I, j ] : 6 ); Writeln ( ) ; End; Readln; End. { muda de linha} 4- Variáveis compostas homogêneas multidimensionais Declaração: Var identificador : Array [Li1..Lf1, Li2 Lf2, Lin..Lfn ] of tipo ; Onde: Li1 e Lf1 = limites inferior e superior da primeira dimensão (valors inteiros) Li2 e Lf2 = limites inferior e superior da segunda dimensão (valors inteiros) Lin e Lfn = limites inferior e superior da n-ésima dimensão (valors inteiros) Exemplo: Var Matriz : Array [ 1.. 4, 1.. 4, ] of Integer; { um " cubo" de valores } 5- Variáveis compostas heterogêneas - registros Declaração: Nome Nº P1 P2 Sub média Roberto Registro R Var identificador : Record 33

34 Campo1 : tipo1; Campo2 : tipo2;.. CampoN : tipon; End; Onde: Campo1, campo2, campon = identificadores; Tipo1, tipo2, tipon = tipos associados aos campos. Exemplo: Var Aluno = Record { desenho acima } Nome : string [ 20 ]; Numero : string [ 6 ]; P1 : real; P2 : real; Sub : real ; Media : real; End; Referência a todo o registro Atribuição de um registro para o outro Exemplo V1 := V2; { V1 é registro do mesmo tipo que V2} { todos os valores de V1 recebem seus equivalentes em V2 } Referência a um único elemento do vetor Atribuição Leitura Uso em expressões Exemplos: Aluno.nome := Roberto ; { sendo Aluno um registro como declarado acima } Aluno.numero := ; Aluno.Media := (Aluno.P1 + Aluno.P2)/2; Readln ( Aluno.p1 ); Writeln ( Aluno.nome ); Exemplo de uso: fazer um programa para ler os dados de 41 alunos (modelo acima), suas notas, calcular e escrever nome do aluno e sua respectiva média. Use um vetor de registros para armazenar temporariamente os valores. Algoritmo 1- declare variáveis Tabela (vetor de registros), I tipo inteiro 2- leia os dados (nome, nro, notas ), armazenando-os na tabela 3- calcule a média para cada aluno 4- escreva o nome e a média de cada aluno 34

35 Programa Program Calcula_Medias; var i : integer; Tabela : Array [1..4] of Record nome : string; numero: string; p1 : real; p2 : real; media : real; end; begin { ref. 2 leitura dos dados } For i := 1 to 4 do begin write( 'nome = '); readln( Tabela[i].nome ); write( 'nro = '); readln ( tabela[i].numero ); write( 'p1 = ' ); readln ( Tabela[i].p1 ); write( 'p2 = ' ); readln ( Tabela[i].p2 ); writeln; end; { ref. 3 calculo das médias } For i := 1 to 4 do Tabela[ i ].media := (tabela[i].p1 + tabela[i].p2)/2; { ref. 4 escrever nomes e m dias } writeln(' nome medias '); For i := 1 to 4 do Writeln( Tabela[i].nome:10, tabela[i].media:10:2); writeln; Writeln( 'pressione enter para continuar '); readln; end. Exercícios de fixação 1- Ler um conjunto de 50 inteiros e escreve-los na ordem inversa à ordem de leitura. 2- Ler 30 elementos inteiros, colocar em um vetor. Depois, calcule e escreva o maior elemento, a soma de todos e a média. 3- Ler 2 vetores a e b, de inteiros, montar o vetor soma = a + b. 4- Ler dois vetores a e b, de char, montar um vetor que intercale os elementos de a (todos os ímpares) e b (os pares). 5- Ler um vetor e, em seguida, ordenar os valores (monte um novo vetor), escreva o resultado: ambos os vetores, lado a lado. 6- Multiplicação de matrizes: leia a e b (4x4), crie C = A*B, escreva C. Nas questões abaixo, preocupe-se, antes de começar a fazer o algoritmo, em definir a estrutura de dados mais adequada para resolver o problema. 7- Gabarito vestibular. Faça um programa para corrigir provas de vestibular. Primeiramente leia (e armazene temporariamente em um vetor) um gabarito (alternativas a-e, 50 questões). Depois leia um conjunto indeterminado de provas, calcule e escreva o número de acertos para cada uma delas. Não é necessário armazenar os valores de cada prova. Ao final da correção de cada prova, pergunte ao usuário se existem mais provas a serem corrigidas. Se não existirem mais, encerre o programa. 8- Loteria esportiva. Faça um programa para ler um "gabarito" com os resultados dos jogos da loteria esportiva (coluna 1, coluna2, coluna do meio, 13 jogos), armazenando em um vetor. Depois leia um 35

36 conjunto indeterminado de jogos e verifique se ganhou o prêmio. Ao final da verificação, pergunte se o usuário quer entrar mais jogos. Ao final do programa, informe quantos ganharam o prêmio. 9- Estoque de supermercado. Faça um programa para controlar o estoque de um supermercado. Para cada produto armazene: nome, estoque, preço, e estoque mínimo. Leia dados para o estoque e guarde em um vetor. Depois percorra o vetor e escreva o nome e as demais informações de todos os produtos que estão com estoque abaixo do estoque mínimo. 10- Folha de pagamentos. Monte um vetor para armazenar o nome, cargo, salário bruto de cada funcionário de uma empresa. Depois execute a folha de pagamentos da seguinte forma: Para cada funcionário, imprima nome, salário bruto, salário líquido (para salários menores que 1000 o salário líquido é o próprio salário bruto; para salários maiores ou iguais a 1000 o salário líquido é cerca de 87% do salário bruto). Módulo 4: Modularização Objetivos de aprendizado neste módulo... apresentar ao estudante o conceito de subprograma e considerações sobre modularização praticar o desenvolvimento de algoritmos com a utilização de tais conceitos e considerações. Texto base para este módulo Farrer e outros, "Algoritmos Estruturados", capítulo 3. Farrer e outros, "Pascal Estruturado", capítulo 3, e capítulo 4 (sobre declaração de tipos). Tópicos 1. Conceito de modularização 2. Subprogramas em Pascal procedimentos funções Abrindo um parêntesis: declaração de tipos 3. exercícios 1- Conceito de modularização O que é um sistema modular? O que é um aparelho de som modular? Conceito de módulo: porção do sistema com função bem definida. Conceito de módulo (no contexto de programação): trecho de um programa com função bem definida. Na fase de projeto do programa (refinamentos sucessivos, algoritmo), deve-se buscar o projeto de um programa modular. 36

37 Visão de um programa na fase de projeto: programa principal e vários módulos. Programa Principal A B C Program Principal; A; B; C; End. A1 A2 Procedure A; { refinamento A? } A1; A2; End; 2- Subprogramas em Pascal Subprograma Trecho de programa com função bem definida Variáveis próprias Parâmetros de entrada e saída (para comunicação com o o programa principal e demais subprogramas) Acionado pelo nome, como se fosse um comando da linguagem. Tipos Procedimentos (procedure) Funções (function): tem pelo menos um resultado Sintaxe de um programa com subprogramas Program identificador; Declaração de variáveis Declaração de subprogramas Comandos End Procedimentos sintaxe: Procedure identificador [ (declaração dos parâmetros de entrada e saída) ] ; Declaração das variáveis, constantes e tiops locais ao subprograma em questão Declaração de subprogramas locais ao subprograma em questão Comandos End; 37

38 Exemplo: Program troca_troca; Var a, b : integer; Procedure Troca (var A, B : integer ) ; Var aux : integer; Aux := a; A := b; B := aux; End; { programa principal } Read( a ); Read( b ); Troca( a, b ); Write( a ); Write( b ); End. Parâmetros Entrada Entrada e saída (são precedidos por var Variáveis com nomes iguais Dentro de subprogramas, a referência prioritária é a uma variável local Variáveis locais e parâmetros Conhecidos somente dentro do subprograma no qual foram declarados 2.2- Funções sintaxe: Function identificador [ (declaração dos parâmetros de entrada e saída) ] : tipo ; Declaração das variáveis, constantes e tiops locais ao subprograma em questão Declaração de subprogramas locais ao subprograma em questão Comandos End; Exemplo: Program Calcula_Media; Var a, b : integer; Var med: real; Function Media ( a, b : integer ) : real; Media := (a + B)/2; End; Readln( a ); Readln( b ); Med := media( a, b ); 38

39 Writeln( med ); End Abrindo um parêntesis: declaração de tipos Sintaxe Type identificador = descrição de tipo válida em pascal ; Exemplo: Type matriz = array[1..3, 1..3] of integer; Var a, b : matriz; 3- Exercícios Refazer os seguintes exercícios, agora usando subprogramas para tornar o programa mais modular. 1. Fazer um programa que leia dois valores A e B, calcule e escreva a sua média aritmética. Subprograma para calcular a média. 2. Fazer um programa que leia dois valores A e B, determine e escreva o maior entre eles. Subprograma para calcular o maior. 3. Escrever um procedimento para leitura de um valor inteiro entre 1 e 100. Se o usuário fornecer um valor for a desta faixa, deve-se repetir o processo até que seja fornecido um valor válido. 4. A conversão de graus Farenheit para centígrados segue a fórmula C = 5/9 ( F 32 ). Fazer um programa para gerar uma tabela mostrando temperaturas em F e em C, variando F de 1 em 1 grau de 40 até 160 F. Use uma função para fazer a conversão. 5. Leia 50 valores do tipo (nome, Notap1, Notap2, Nota_trabalhos, Percentual_de_presença), e determine quantos alunos foram aprovados e quantos foram reprovados. Para aprovação é preciso ter média maior ou igual a 6 e 75% de presença. A média é calculada pela expressão: Media = (P1 + P2) * 70% + Nota1Trabalhos * 30%. Use uma função para calcular a média. 6. Programa que le dois vetores A e B e apresenta o vetor Soma. Use subprogramas para ler os vetores e para somar os vetores. 7. Fazer programa para ler duas matrizes e apresentar a soma. Subprogramas para ler, somar e escrever as matrizes. 8. Fazer procedimento para multiplicar 2 matrizes A (MxN) e B (NxK) e retornar a matriz resultado (MxK). Obs: A (M x N) * B (N x K) = Mult (M x K) For I := 1 to M do For J := 1 to K do Mult (I, j) := A ( I, x) * B(x,j) { x variando de 1 a N } 39

40 Módulo 5: Arquivos Objetivos de aprendizado neste módulo... apresentar ao estudante o conceito e as operações básicoas sobre arquivos praticar o desenvolvimento de algoritmos com a utilização de tais conceitos e comandos. Texto base para este módulo Farrer e outros, "Algoritmos Estruturados", seção 2.4. Farrer e outros, "Pascal Estruturado", seção 2.4. Tópicos 1. conceito de arquivo 2. arquivos com tiipo - operações básicas 3. visão geral de arquivos sequenciais 4. visão geral de arquivo texto 5. exercícios 6. comandos adicionais 1- Conceito de Arquivo Nos programas que fizemos até o moment, se desligarmos o computador, todos os dados armazenados são perdidos. Arquivo: depósito de dados em memória permanente (disco rígido, disquete, etc.) Tipos Arquivo com tipo: armazena dados de um único tipo (inteiros, vetores, registros, etc.), sequencialmente Arquivo texto : armazena textos (como em um editor de texto) Exemplos 40

41 Esquema de um arquivo de inteiros Esquema de um arquivo do tipo Aluno (registro) 0 5 Nome Nro P1 P2 media José ico Tiago Mané Maria Julia Arquivos com tipo Operações sobre arquivos Declarar Associar com um nome físico Criar Abrir Fechar Escrever Ler Declarar Var identificador : file of tipo; Exemplo Var F : File of integer; Associar com um nome físico Assign( identificador, nome físico); Exemplos Assign( F, a:dados.dat ); Assign( F, c:\progs\ic\quinto.xxx ); Criarum arquivo vazio (exemplo) Rewrite( F ); Abrir um arquivo já existente (exemplo) Reset( F ); Fechar um arquivo (exemplo) Close( F ); Ler um registro de um arquivo (exemplo) Read( F, I ); { sendo F um arquivo de inteiros e I variável tipo inteiro } Escrever um registro em um arquivo (exemplo) Write( F, I ); { sendo F um arquivo de inteiros e I variável tipo inteiro } Exemplo de programa: ler e armazenar uma tabela de Alunos, notas e médias Program Alunos; Type Tabela = array[1..41] of record Nome : tring[10]; 41

42 Numero: string[5]; P1:real; P2:real; Media: real; End; Var T Var Arquivo Var I : Tabela; : File of Tabela; : integer; For I := 1 to 41 do Readln( T.nome, T.numero, T.p1, T.p2 ); Assign( arquivo, c:\progs\myfile.dat ); Rewrite( arquivo ); Write( arquivo, T ); Close( arquivo ); End. 1 Nome Nro P1 P2 media 2 José ico Tiago Mané Maria Julia Visão geral de arquivos seqüenciais Arquivo do tipo Aluno = registro (nome, numero, p1, p2, media) Nome Nro P1 P2 media 0 José ico Tiago Mané Maria Julia Operações EOF ( F ); { end of file? Função de resultado boolean } Filesize( F ); { retorna o tamanho do arquivo, em número de registros } Filepos( F ); { retorna a posição corrente para leitura ou escrita } Seek( F, posição ); { posiciona o indicador de posição corrente na posição indicada } Exemplo1: cópia de arquivos Program Copia; Type aluno : record Nome : tring[10]; Numero : string[5]; P1, p2, media : real; End; 42

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Manipulação de Arquivos em Pascal

Manipulação de Arquivos em Pascal Manipulação de Arquivos em Pascal Estrutura de Dados II Aula 03 UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox 1 Para implementar programa infantil para ordenação (alfabética) de

Leia mais

Representação de Algoritmos - Linguagens de Programação

Representação de Algoritmos - Linguagens de Programação Representação de Algoritmos - Linguagens de Programação A representação de algoritmos em uma pseudo-linguagem mais próxima às pessoas é bastante útil principalmente quando o problema a ser tratado envolve

Leia mais

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann INFORMÁTICA BÁSICA Prof. Rafael Zimmermann 1. INFORMÁTICA É a ciência que estuda o processamento de informações. Nasceu da necessidade do homem processar informações cada vez mais complexas e com maior

Leia mais

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1 Estrutura de Dados Introdução a Ponteiros Prof. Gerson Borges Estrutura de Dados I 1 Sumário è Explicação da importância do planejamento de ensino; è Métodos e técnicas que iremos trabalhar durante o semestre;

Leia mais

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição 1 Estrutura de seleção Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição - Necessário quando mais de uma ação deve ser tomada se uma condição for satisfeita

Leia mais

A4 Projeto Integrador e Lista de Jogos

A4 Projeto Integrador e Lista de Jogos A4 Projeto Integrador e Lista de Jogos 1ª ETAPA PROJETO INTEGRADOR (2 pontos na A4) Como discutido em sala de aula, a disciplina de algoritmos I também fará parte do projeto integrador, para cada grupo

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Introdução à Programação e Algoritmos. Aécio Costa

Introdução à Programação e Algoritmos. Aécio Costa Aécio Costa Programação é a arte de fazer com que o computador faça exatamente o que desejamos que ele faça. O que é um Programa? Uma seqüência de instruções de computador, para a realização de uma determinada

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS CURSO TÉCNICO EM PROCESSAMENTO DE DADOS APOSTILA DE LÓGICA DE PROGRAMAÇÃO CAP Criação de Algoritmos e Programas PROFESSOR RENATO DA COSTA Não estamos aqui para sobreviver e sim para explorar a oportunidade

Leia mais

ARQUIVOS. Os arquivos criados em meios magnéticos poderão ser acessados para leitura e escrita na forma seqüencial, direta ou indexada.

ARQUIVOS. Os arquivos criados em meios magnéticos poderão ser acessados para leitura e escrita na forma seqüencial, direta ou indexada. Texto retirado e adaptado da apostila A Linguagem Pascal, disponível no site http://www.portaldaprogramacao.com (autor: desconhecido) ARQUIVOS Anteriormente, foi estudado o conceito de tabelas em memória

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Estruturas de dados Representação computacional das informações do problema ser resolvido Informações podem ser de

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes FUNÇÕES E PROCEDIMENTOS Também chamados de subalgoritmos São trechos de algoritmos

Leia mais

Linguagem algorítmica: Portugol

Linguagem algorítmica: Portugol Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada

Leia mais

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos

Leia mais

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções) Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

10) REGISTROS : Exemplos: var N,I: integer; A,B,C: real; CHAVE: boolean; CARAC: char; V: array[1..20] of real; M: array[1..10,1..

10) REGISTROS : Exemplos: var N,I: integer; A,B,C: real; CHAVE: boolean; CARAC: char; V: array[1..20] of real; M: array[1..10,1.. Página 1 de 10 10) REGISTROS : De um modo geral, as variáveis podem ser: - simples (integer, real, boolean, char) e - compostas: - homogêneas (array) - heterogêneas (record) Exemplos: var N,I: integer;

Leia mais

Programação WEB I Estruturas de controle e repetição

Programação WEB I Estruturas de controle e repetição Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos

Leia mais

Lista de Exercícios. Vetores

Lista de Exercícios. Vetores Lista de Exercícios Vetores LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. WWW.EDUARDOSILVESTRI.COM.BR ATUALIZADO EM: 13/03/2007 Página 1/1 1. Faça um programa que crie um vetor de inteiros de 50 posições

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

IFTO LÓGICA DE PROGRAMAÇÃO AULA 02

IFTO LÓGICA DE PROGRAMAÇÃO AULA 02 IFTO LÓGICA DE PROGRAMAÇÃO AULA 02 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos http://manoelcampos.com

Leia mais

Tecnologia da Informação. Prof Odilon Zappe Jr

Tecnologia da Informação. Prof Odilon Zappe Jr Tecnologia da Informação Prof Odilon Zappe Jr Conceitos básicos de informática O que é informática? Informática pode ser considerada como significando informação automática, ou seja, a utilização de métodos

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP Algoritmos e Programação Ricardo Argenton Ramos Baseado nos slides do professor Jadsonlee da Silva Sá Ementa Conceito de algoritmo. Lógica de programação e programação estruturada. Linguagem de definição

Leia mais

OBI2014 Caderno de Tarefas

OBI2014 Caderno de Tarefas OBI2014 Caderno de Tarefas Modalidade Universitária, Fase 2 16 de agosto de 2014 A PROVA TEM DURAÇÃO DE 5 HORAS Promoção: Patrocínio: Olimpíada Brasileira de Informática OBI2014 1 Instruções LEIA ATENTAMENTE

Leia mais

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Problemas & Algoritmos Para resolver um problema através dum computador é necessário encontrar em primeiro lugar uma maneira de descrevê-lo

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

PROG. DE COMPUTADORES II SI Arquivos

PROG. DE COMPUTADORES II SI Arquivos 1 PROG. DE COMPUTADORES II SI Arquivos Arquivos Permitem que gravemos nossas informações em dispositivos físicos Pendrive HD Estão organizados logicamente em registros Cada registro é similar a um campo

Leia mais

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

PROGRAMAÇÃO DE COMPUTADORES (Teoria) PC PROGRAMAÇÃO DE COMPUTADORES (Teoria) Aula 01 Prof. Ricardo Veras (prof.rveras@gmail.com) ALGORITMOS "Seqüência ordenada de passos, que deve ser seguida para a realização de um tarefa" "Algoritmo é um

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

ESTRUTURA CONDICIONAL

ESTRUTURA CONDICIONAL AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Algumas notas sobre PASCAL

Algumas notas sobre PASCAL Algumas notas sobre PASCAL PARTE I Anjolina Grisi de Oliveira 1 Um programa em PASCAL Esse texto inclui algumas notas sobre a linguagem PASCAL. As diferenças existentes entre os diversos compiladores não

Leia mais

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir:

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir: Introdução à Informática 1 de 6 Data: 29/05/04 1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir: program eq2grau; uses WinCrt, Strings;

Leia mais

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Construtor: método executado por uma CLASSE (e não por um objeto, instância da classe)

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais diferenciaram-se

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

OBI2009 Caderno de Tarefas

OBI2009 Caderno de Tarefas OBI2009 Caderno de Tarefas Modalidade Programação Nível 1, Fase 1 A PROVA TEM DURAÇÃO DE QUATRO HORAS LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA Este caderno de tarefas é composto por 8

Leia mais

Algoritmo e Programação

Algoritmo e Programação Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,

Leia mais

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? A arquitetura básica de qualquer computador completo, seja um PC, um Machintosh ou um computador de grande porte, é formada por apenas 5 componentes básicos:

Leia mais

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ #include { Este trecho é reservado para o corpo da função, com a declaração de suas variáveis locais, seus comandos e funções

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão CURSO BÁSICO DE PROGRAMAÇÃO AULA 9 Introdução a linguagem C Estruturas de decisão Introdução à Linguagem C Linguagem compilada. Desenvolvida sobre os paradigmas de programação procedural. Uma das linguagens

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

Leia mais

ESTRUTURA DE DADOS -VARIÁVEIS COMPOSTAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

ESTRUTURA DE DADOS -VARIÁVEIS COMPOSTAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ESTRUTURA DE DADOS -VARIÁVEIS COMPOSTAS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO Variáveis compostas homogêneas Arrays Vetores Matrizes Variáveis compostas heterogêneas Registros

Leia mais

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012

Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012 Curso de Hardware Aula 01 Tema: Sistema de Medidas Por: Edmilson de Oliveira Reis Revisado em: 02/03/2012 Unidades de Medida de Armazenamento Esses detalhes refletem na quantidade de informação armazenada

Leia mais

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS OBJETIVOS DO CAPÍTULO Conceitos de: arquivo de saída, biblioteca, funções matemáticas intrínsecas Criar e usar arquivos para mostrar resultados da

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez

1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez Manual Conteúdo 1- Requisitos mínimos... 2 2- Instalando o Acesso Full... 2 3- Iniciando o Acesso Full pela primeira vez... 2 4- Conhecendo a barra de navegação padrão do Acesso Full... 3 5- Cadastrando

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Conceitos Básicos sobre Sistema de Computação

Conceitos Básicos sobre Sistema de Computação Conceitos Básicos sobre Sistema de Computação INFORMÁTICA -É Ciência que estuda o tratamento automático da informação. COMPUTADOR Equipamento Eletrônico capaz de ordenar, calcular, testar, pesquisar e

Leia mais

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

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores 1. Objetivos Situar a atividade de programação de computadores Apresentar conceitos fundamentais relativos

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando

Leia mais

Programação Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

Roteiro 1: Dados, variáveis, operadores e precedência

Roteiro 1: Dados, variáveis, operadores e precedência 1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta

Leia mais

05/04/2013. Para efetuar medidas é necessário fazer uma padronização, escolhendo unidades para cada grandeza.

05/04/2013. Para efetuar medidas é necessário fazer uma padronização, escolhendo unidades para cada grandeza. Sistemas Internacional de Unidades Já imaginou se quando você fosse comprar uma fonte, importada, e ela viesse com as todas as especificações expressas em unidades que você nem fazia idéia que existiam?

Leia mais

OBS.: Qualquer variável utilizada num subprograma que não for parâmetro deve ser considerada como variável local.

OBS.: Qualquer variável utilizada num subprograma que não for parâmetro deve ser considerada como variável local. 1 LINGUAGEM ALGORITMICA Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Variáveis : Toda em maiúscula : CONSTANTE Iniciando em Maiúscula

Leia mais

3. Tipos de Dados, Constantes e Variáveis.

3. Tipos de Dados, Constantes e Variáveis. 3. Tipos de Dados, Constantes e Variáveis. O computador realiza a sua tarefa trabalhando as informações contidas em sua memória, essas podem ser classificadas em dois tipos básicos: as instruções e os

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

Aula 01 Parte 03 Computadores e Algoritmos. Prof. Filipe Wall Mutz

Aula 01 Parte 03 Computadores e Algoritmos. Prof. Filipe Wall Mutz Aula 01 Parte 03 Computadores e Algoritmos Prof. Filipe Wall Mutz Agenda Estrutura de um Computador Digital Algoritmos Refinamentos sucessivos Estrutura de um Computador Digital Memória Unidade de Entrada

Leia mais

Python Condicionais e Loops. Introdução à Programação SI1

Python Condicionais e Loops. Introdução à Programação SI1 Python Condicionais e Loops Introdução à Programação SI1 Conteúdo Comando de Decisão Comandos de Repetição Exercícios 13/06/2013 2 Condicional Controle de fluxo É muito comum em um programa que certos

Leia mais