CURSO DE. Template void Stack::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 void Stack::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, 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

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

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

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

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Aula 08 Programação em pascal Pascal Pascal

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

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

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

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

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática Programação 1 Prof. Osório Aula 01 Pag.: 1 UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática PROGRAMAÇÃO I AULA 01 Disciplina: Linguagem

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

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

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

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

APOSTILA DE ALGORITMOS PROFESSOR ANDRÉ LUIZ NASSERALA PIRES

APOSTILA DE ALGORITMOS PROFESSOR ANDRÉ LUIZ NASSERALA PIRES ALGORITMO Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema. Definimos Algoritmo como a seqüência de passos que visam atingir um

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

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

PC Fundamentos Revisão 4

PC Fundamentos Revisão 4 exatasfepi.com.br PC Fundamentos Revisão 4 André Luís Duarte...mas os que esperam no Senhor renovarão as suas forças; subirão com asas como águias; correrão, e não se cansarão; andarão, e não se fatigarão.is

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

II. LÓGICA DE PROGRAMAÇÃO COM PASCAL

II. LÓGICA DE PROGRAMAÇÃO COM PASCAL II. LÓGICA DE PROGRAMAÇÃO COM PASCAL Leitura: Engenharia de Software - Roger S. Pressman Cap 16 - Linguagens de Programação e Codificação (exceto 16.2) Introdução à Programação com Pascal - Sérgio E. R.

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

Aula 01. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

Aula 01. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios Aula 01 Slide 1 BIBLIOGRAFIA SCHILDT H. C Completo e Total, Makron Books. SP, 1997. Curso de linguagem C da UFMG. ZIVIANI,

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

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo 1.1 Introdução A Lógica é forma de organizar os pensamentos e demonstrar o raciocínio de maneira correta. A utilização da lógica é a melhor maneira de solucionar

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

15/08/2013 DIREITO DA. Professor: Luis Guilherme Magalhães (62) 9607-2031 INTRODUÇÃO À INFORMÁTICA

15/08/2013 DIREITO DA. Professor: Luis Guilherme Magalhães (62) 9607-2031 INTRODUÇÃO À INFORMÁTICA DIREITO DA INFORMÁTICA Professor: Luis Guilherme Magalhães (62) 9607-2031 INTRODUÇÃO À INFORMÁTICA 1 CONCEITOS BÁSICOS Informática infor + mática. É o tratamento da informação de forma automática Dado

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

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

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

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação

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

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 à 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

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

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

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

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS Software Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS ESQUEMA DE UM SISTEMA DE COMPUTADOR Unidades de Entrada - Teclado - Scanner - Caneta Ótica - Leitora

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

Algoritmos e Programação. Prof. Tarcio Carvalho

Algoritmos e Programação. Prof. Tarcio Carvalho Algoritmos e Programação Prof. Tarcio Carvalho Conceito de Lógica A utilização da lógica na vida do indivíduo é constante, visto que é ela quem possibilita a ordenação do pensamento humano. Exemplo: A

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

INTRODUÇÃO À COMPUTAÇÃO

INTRODUÇÃO À COMPUTAÇÃO INTRODUÇÃO À COMPUTAÇÃO Heleno Pontes Bezerra Neto (helenopontes@lccv.ufal.br) 1. Introdução 1.1. Motivação 1.2 Histórico e Desenvolvimento dos Computadores 1.3. Organização dos Computadores 1. INTRODUÇÃO

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

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

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

EVOLUÇÃO DOS COMPUTADORES

EVOLUÇÃO DOS COMPUTADORES EVOLUÇÃO DOS COMPUTADORES 1951/1959 - Computadores de primeira geração Circuitos eletrônicos e válvulas Uso restrito Precisava ser reprogramado a cada tarefa Grande consumo de energia Problemas devido

Leia mais

Tubarão / Santa Catarina / BRAZIL E-Mail : osmarjr@unisul.rct-sc.br http://tec1.unisul.rct-sc.br/osmarjr/

Tubarão / Santa Catarina / BRAZIL E-Mail : osmarjr@unisul.rct-sc.br http://tec1.unisul.rct-sc.br/osmarjr/ Tubarão / Santa Catarina / BRAZIL E-Mail : osmarjr@unisul.rct-sc.br http://tec1.unisul.rct-sc.br/osmarjr/ Índice 1. Algoritmos 3 2. Fases de um Algoritmos 4 3. Estrutura de Algoritmos 5 4. Variáveis 6

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar

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

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

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

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

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO E LINGUAGEM PASCAL

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO E LINGUAGEM PASCAL APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO E LINGUAGEM PASCAL SUMÁRIO 1 INTRODUÇÃO À PROGRAMAÇÃO...4 1.1 DEFINIÇÃO DE ALGORITMO...4 1.1.1 Algoritmo x Programa...4 1.2 LINGUAGEM DE PROGRAMAÇÃO...4 1.2.1 Tipos

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea Variáveis Compostas Heterogêneas Variável Composta Heterogênea Conjunto de dados logicamente relacionados, mas de tipos diferentes. Também chamada de registro. Variável Composta Heterogênea 1 Declaração

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

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Aula 10 Arquivos Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Persistência

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

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

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

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Informática, Internet e Multimídia

Informática, Internet e Multimídia Informática, Internet e Multimídia 1 TIPOS DE COMPUTADOR Netbook Notebook Computador Pessoal 2 Palmtop / Handheld Mainframe TIPOS DE COMPUTADOR Computador Pessoal O Computador Pessoal (PC Personal Computer),

Leia mais

Aula 01 Introdução à Informática. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br

Aula 01 Introdução à Informática. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br Aula 01 Introdução à Informática Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br Agenda da Aula Introdução à Informática; Dados x Informação; O Computador (Hardware); Unidades de medida.

Leia mais

2 Um Primeiro Programa em C

2 Um Primeiro Programa em C 2 Um Primeiro Programa em C Ronaldo F. Hashimoto, Carlos H. Morimoto e José A. R. Soares OobjetivodessaaulaéintroduzirvocêàlinguagemCemambienteLinux,primeiramentemostrandoasua estrutura, e a seguir com

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

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal AULA Informática: Aplicações e Benefícios Advocacia

Leia mais

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação Lógica de Programação 3. INTRODUÇÃO À LINGUAGEM C Caro Aluno Vamos iniciar o terceiro capítulo da nossa disciplina. Agora vamos começar a aplicar os conceitos vistos nos capítulos anteriores em uma linguagem

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

Lista de Exercícios Introdução à Informática

Lista de Exercícios Introdução à Informática Lista de Exercícios Introdução à Informática Histórico e Evolução da Computação 1. Cite alguns problemas que o uso de válvulas provocava nos computadores de 1ª geração. 2. O que diferencia os computadores

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

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

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com.

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com. UAL é uma linguagem interpretada para descrição de algoritmos em Português. Tem por objetivo auxiliar o aprendizado do aluno iniciante em programação através da execução e visualização das etapas de um

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

Programação de Computadores

Programação de Computadores Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento

Leia mais

Notas de Aula de Algoritmos e Programação de Computadores

Notas de Aula de Algoritmos e Programação de Computadores Notas de Aula de Algoritmos e Programação de Computadores FLÁVIO KEIDI MIYAZAA com a colaboração de TOMASZ KOALTOSKI Instituto de Computação - UNICAMP Versão 2000.1 Estas notas de aula não devem ser usadas

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

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

Aula Prática 1: Introdução ao Ambiente de Programação Dev-C++

Aula Prática 1: Introdução ao Ambiente de Programação Dev-C++ Aula Prática 1: Introdução ao Ambiente de Programação Dev-C++ 1. Introdução Em nossa primeira aula prática de programação em linguagem C iremos escrever e testar programas de computador básicos. Mas antes,

Leia mais

1 Lógica de Programação

1 Lógica de Programação 1 Lógica de Programação Técnicas de programação Programação Sequencial Programação Estruturada Programação Orientada a Eventos e Objectos 1.1 Lógica A lógica de programação é necessária para pessoas que

Leia mais

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

O Computador. Evolução dos métodos de cálculo. Estrutura do Computador Digital NOTAS DE AULA ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES 1 Introdução à Ciência da Computação Histórico da Computação A tarefa de processamento de dados consiste em: o tomar certa informação, o processá-la

Leia mais

Apostila Básica de Lógica e Programação para Game Maker por Giosepe Luiz 1

Apostila Básica de Lógica e Programação para Game Maker por Giosepe Luiz 1 Apostila Básica de Lógica e Programação para Game Maker por Giosepe Luiz 1 Sumário 1. Introdução a Lógica... 03 2. Verdadeiro e Falso... 03 3. Conectivo E e OU... 03 4. Negação... 04 5. Introdução a Programação...

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

Introdução a conceitos e a prática de programação

Introdução a conceitos e a prática de programação Instituto de Informática - UFG Disciplina: Introdução à Computação Introdução a conceitos e a prática de programação Autores: Marcelo Akira e Anderson Soares Fevereiro de 2011 Alguns direitos autorais

Leia mais

Algoritmos e Programação _ Departamento de Informática

Algoritmos e Programação _ Departamento de Informática 5 TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. De um modo geral estas informações podem ser classificadas em dois tipos:

Leia mais

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

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Ciclo de desenvolvimento O modelo hipotético de computador utilizado no capítulo anterior, embora muito

Leia mais

Laboratório de Programação I

Laboratório de Programação I Laboratório de Programação I Introdução à Programação em Visual Basic Fabricio Breve Objetivos Ser capaz de escrever programas simples em Visual Basic Ser capaz de usar os comandos de entrada e saída Familiarizar-se

Leia mais

Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte, ofício ou técnica.

Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte, ofício ou técnica. Técnica - Conjunto de processos que constituem uma arte ou um ofício. Aplicação prática do conhecimento científico. Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte,

Leia mais

Apostila da disciplina de PROGRAMAÇÃO I - Linguagem Pascal -

Apostila da disciplina de PROGRAMAÇÃO I - Linguagem Pascal - FIT - Faculdade de Informática de Taquara Curso de Sistemas de Informação Apostila da disciplina de PROGRAMAÇÃO I - Linguagem Pascal - Profa. Flávia Pereira de Carvalho Agosto de 2006 Sumário Página 1

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

Leia mais

QUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS

QUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS Desenvolvimento De Sistemas - Lógica De Programação. 1. Lógica de Programação I 1.1 Introdução á Lógica de Programação 1.2 O que é lógica? 1.3 Lógica Matemática 1.4 Lógica de Programação 1.5 Seqüência

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

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

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais