INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO

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

Download "INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO"

Transcrição

1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO /###### /### /##### /##### /### /### ### /### /### ### /### /### / ### /## /### ### ### ### ### /###_/ ### #### \/_/ ### /_/ /###_/ ### ### ######_/ ### ### \ / #### ### ### ### ### ### / ######### \ / #### ### ######### ### ### ### /### /###\ ### / ### /## ### /### ### ### ### ### / ##### / \ ##### / ### ### ####### / / / / / / \ / / \/ / / / / / / / SEMESTRE 2008/1

2 SUMÁRIO 1 - FUNDAMENTOS DE PROGRAMAÇÃO O QUE SÃO ALGORITMOS? POR QUE PRECISAMOS DE ALGORITMOS? MÉTODO PARA CONSTRUIR UM ALGORITMO EXERCÍCIOS TIPOS DE INFORMAÇÃO TIPOS INTEIROS (NUMÉRICOS) TIPOS REAIS (NUMÉRICOS) TIPOS CARACTERES TIPOS LÓGICOS VARIÁVEIS ARMAZENAMENTO DE DADOS NA MEMÓRIA CONCEITO E UTILIDADE DE VARIÁVEIS INSTRUÇÕES PRIMITIVAS REPRESENTAÇÃO DE ALGORITMOS ATRAVÉS DE FLUXOGRAMAS EXERCÍCIOS INTRODUÇÃO A LINGUAGEM PASCAL PROGRAMAS FONTE, OBJETO E EXECUTÁVEL NOMES DOS ARQUIVOS EM DISCO FUNDAMENTOS DA PROGRAMAÇÃO EM PASCAL ESTRUTURA DE UM PROGRAMA EM PASCAL IDENTIFICADORES TIPOS DEFINIDOS DO PASCAL TIPO INTEIRO TIPO BOOLEAN TIPO CHAR TIPO REAL TIPO STRING DECLARAÇÃO DE VARIÁVEIS DECLARAÇÃO DE CONSTANTES COMANDO DE ATRIBUIÇÃO COMENTÁRIOS EXPRESSÕES ARITMÉTICAS FUNÇÕES MATEMÁTICAS PRÉ-DEFINIDAS EXPRESSÕES LÓGICAS EXERCÍCIOS ENTRADA E SAÍDA DE DADOS COMANDOS DE ENTRADA COMANDOS DE SAÍDA FORMATAÇÃO O COMANDO CLRSCR EXERCÍCIOS EXERCÍCIOS AVANÇADOS ESTRUTURAS DE DECISÃO COMANDOS COMPOSTOS A ESTRUTURA DE DECISÃO IF... 33

3 4.2.1 EXERCÍCIOS DE FIXAÇÃO EXERCÍCIOS EXERCÍCIOS OPCIONAIS A ESTRUTURA DE DECISÃO CASE EXERCÍCIOS ESTRUTURAS DE REPETIÇÃO A ESTRUTURA DE REPETIÇÃO FOR EXERCÍCIOS EXERCÍCIOS OPCIONAIS A ESTRUTURA DE REPETIÇÃO WHILE EXERCÍCIOS EXERCÍCIOS OPCIONAIS A ESTRUTURA DE REPETIÇÃO REPEAT-UNTIL EXERCÍCIOS FUNÇÕES E PROCEDIMENTOS FUNÇÕES ESTRUTURA DE UMA FUNÇÃO FUNÇÕES DEFINIDAS POR SOMATÓRIOS PROCEDIMENTOS DEFINIÇÃO, PROCEDIMENTOS SEM PARÂMETROS PROCEDIMENTOS COM PARÂMETROS EXERCÍCIOS VETORES E MATRIZES DECLARAÇÃO DE TIPOS VETORES EXERCÍCIOS MATRIZES EXERCÍCIOS...102

4 1 1 FUNDAMENTOS DE PROGRAMAÇÃO 1.1 O QUE SÃO ALGORITMOS? O uso de algoritmos é quase tão antigo quanto a matemática. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular e mais tarde os computadores, o uso de algoritmos ressurgiu com grande vigor, como uma forma de indicar o caminho para a solução dos mais variados problemas. Algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo. Algoritmo é o caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos. Ao longo dos anos surgiram muitas formas de representar os algoritmos, alguns utilizando linguagens semelhantes às linguagens de programação e outras utilizando formas grácas. O aprendizado de algoritmos não se consegue a não ser através de muitos exercícios. Algoritmos não se aprende: À especicação da seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo. Embora esta denição de algoritmo seja correta, podemos denir algoritmo, de maneira informal e completa como: Algoritmos é um conjunto de regras, bem denidas, para a solução de um problema em um tempo nito e com um número nto de passos. Algoritmo pode ser denido também como um conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída. Um algoritmo deve sempre possuir pelo menos um resultado, normalmente chamado de saída, e satisfazer a propriedade da efetividade, isto é, todas as operações especicadas no algoritmo devem ser sucientemente básicas para que possam ser executadas de maneira exata e num tempo nito.

5 Na prática não é importante ter-se apenas um algoritmo, mas sim, um bom algoritmo. O mais importante de um algoritmo é a sua correção, isto é, se ele resolve realmente o problema proposto e o faz exatamente. Para se ter um algoritmo, é necessário: i. Que se tenha um número nito de passos; ii. Que cada passo esteja precisamente denido, sem possíveis ambigüidades; iii. Que existam zero ou mais entradas tomadas de conjuntos bem denidos; iv. Que existam uma ou mais saídas; v. Que exista uma condição de m sempre atingida para quaisquer entradas e num tempo nito. Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador POR QUE PRECISAMOS DE ALGORITMOS? Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo: A noção de algoritmo é básica para toda a programação de computadores. [KNUTH - Professor da Universidade de Stanford, autor da coleção The art of computer programming] O conceito central da programação e da ciência da computação é o conceito de algoritmo. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]. A importância do algoritmo está no fato de termos que especicar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem especíca e até mesmo do próprio computador MÉTODO PARA CONSTRUIR UM ALGORITMO Utilizando os conceitos já desenvolvidos, esquematizaremos um método para construir um algoritmo logicamente correto: i. Ler atentamente o enunciado: Deve-se reler o enunciado de um exercício quantas vezes for necessário, até compreendê-lo completamente. A maior parte da resolução de um exercício consiste na compreensão completa do enunciado. ii. Retirar a relação das entradas de dados do enunciado Através do enunciado, descobrimos quais são os dados que devem ser fornecidos ao programa, via teclado, a partir dos quais são desenvolvidos os cálculos. Obs. Pode haver algum algoritmo que não necessite da entrada de dados (pouco comum). iii. Retirar do enunciado as informações de saída Através do enunciado podemos descobrir quais são as informações que devem ser mostradas para compor o resultado nal, objetivo do algoritmo. 4. Determinar o que deve ser feito para transformar as entradas em saídas Nessa fase é que teremos a construção do Algoritmo propriamente dito. Devemos determinar qual sequência de passos ou ações é capaz de transformar um conjunto de dados nas informações de resultado. Para isso, utilizamos os fatores descritos anteriormente, tais como legibilidade, portabilidade, método cartesiano e planejamento reverso, e nalmente podemos construir o algoritmo. 2

6 1.1.3 EXERCÍCIOS 1 a Questão) Elabore um algoritmo que mova 3 discos de uma torre de Hanói, que consiste em 3 hastes (a-b-c), uma das quais serve de suporte para os três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um disco maior sobre um menor. O objetivo é transferir os três discos da haste A para haste C. 3 Figura 1.1: Torres de Hanoi Mova <disco n> da haste <n1> para haste <n2> TIPOS DE INFORMAÇÃO Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classicadas em dois tipos: As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador. A classicação apresentada a seguir não se aplica a nenhuma linguagem de programação especíca; pelo contrário, ela sintetiza os padrões utilizados na maioria das linguagens TIPOS INTEIROS (NUMÉRICOS) São caracterizados como tipos inteiros, os dados numéricos positivos ou negativos. Excluindo-se destes qualquer número fracionário. Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1024 entre outros TIPOS REAIS (NUMÉRICOS) São caracterizados como tipos reais, os dados numéricos positivos e negativos e números fracionários. Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1.2, entre outros.

7 1.2.3 TIPOS CARACTERES São caracterizados como tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (). Este tipo de dado também é conhecido como string, alfanumérico, string, literal ou cadeia. Como exemplo deste tipo de dado, tem-se os valores: Programação, Rua Alfa, 52 Apto 1, Fone , ,, 7 entre outros TIPOS LÓGICOS São caracterizados como tipos lógicos os dados com valor verdadeiro e falso, sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo booleano, devido à contribuição do lósofo e matemático inglês George Boole na área da lógica matemática. 1.3 VARIÁVEIS Na programação, uma variável é um objeto (uma posição, freqüentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só existem em tempo de execução, elas são associadas a nomes, chamados identicadores, durante o tempo de desenvolvimento ARMAZENAMENTO DE DADOS NA MEMÓRIA Para armazenar os dados na memória, imagine que a memória de um computador é um grande arquivo com várias gavetas, onde cada gaveta pode armazenar apenas um único valor (seja ele numérico, caractere ou lógico). Se é um grande arquivo com várias gavetas, é necessário identicar com um nome a gaveta que se pretende utilizar. Desta forma o valor armazenado pode ser utilizado a qualquer momento CONCEITO E UTILIDADE DE VARIÁVEIS Têm-se como denição de variável tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante. E quando se fala de computadores, temos que ter em mente que o volume de informações a serem tratadas é grande e diversicado. Desta forma, os dados a serem processados serão bastante variáveis. Como visto anteriormente, informações correspondentes a diversos tipos de dados são armazenadas nas memórias dos computadores. Para acessar individualmente cada uma destas informações, em princípio, seria necessário saber o tipo de dado desta informação (ou seja, o número de bytes de memória por ela ocupados) e a posição inicial deste conjunto de bytes na memória. Percebe-se que esta sistemática de acesso a informações na memória é bastante ilegível e difícil de se trabalhar. Para contornar esta situação criou-se o conceito de variável, que é uma entidade destinada a guardar uma informação. Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação por ela guardada. Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada linguagem de programação estabelece suas próprias regras de formação de nomes de variáveis. Adotaremos para os algoritmos, as seguintes regras: i. um nome de variável deve necessariamente começar com uma letra; ii. um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha ( _ ) e nenhum espaço em branco; iii. Um nome de variável não poderá ser uma palavra reservada a uma instrução de programa. 4

8 Exemplos de nomes de variáveis: Salario - correto 1ANO - errado (não começou uma letra) ANO1 - correto SAL/HORA - errado (contém o caractere /) SAL_HORA - correto _DESCONTO - errado (não começou com uma letra) Obviamente é interessante adotar nomes de variáveis relacionados às funções que serão exercidas pela mesmas dentro de um programa. Outro atributo característico de uma variável é o tipo de dado que ela pode armazenar. Este atributo dene a natureza das informações contidas na variável. Por último há o atributo informação, que nada mais é do que a informação útil contida na variável. Uma vez denidos, os atributos nome e tipo de dado de uma variável não podem ser alterados e assim permanecem durante toda a sua existência, desde que o programa que a utiliza não seja modicado. Por outro lado, o atributo informação está constantemente sujeito a mudanças de acordo com o uxo de execução do programa. Em resumo, o conceito de variável foi criado para facilitar a vida dos programadores, permitindo acessar informações na memória dos computadores por meio de um nome, em vez do endereço de uma célula de memória. Exemplo: Suponha que fosse atribuído os seguintes valores às seguintes variáveis: A = mesa, B = 0, C = 2, D = -5.4, E = João e E = A gura 1.2 mostra como estas variáveis cam armazendas na memória. 5 Figura 1.2: Armazenamento de variáveis na Memória 1.4 INSTRUÇÕES PRIMITIVAS Como o próprio nome diz, instruções primitivas são os comandos básicos que efetuam tarefas essenciais para a operação dos computadores, como entrada e saída de dados (comunicação com o usuário e com dispositivos periféricos), e movimentação dos mesmos na memória. Estes tipos de instrução estão presentes na absoluta maioria das linguagens de programação. Antes de passar à descrição das instruções primitiva, é necessária a denição de alguns termos que serão utilizados: Dispositivo de entrada é o meio pelo qual as informações (mais especicamente os dados) são transferidos pelo usuário ou pelos níveis secundários de memória ao computador. Os exemplos mais comuns são o teclado, o mouse, leitora ótica, leitora de código de barras, as tas e discos magnéticos.

9 Dispositivo de saída é o meio pelo qual as informações (geralmente os resultados da execução de um programa) são transferidos pelo computador ao usuário ou aos níveis secundários de memória. Os exemplos mais comuns são o monitor de vídeo, impressora, tas e discos magnéticos. Sintaxe é a forma como os comandos devem ser escritos, a m de que possam ser entendidos pelo tradutor de programas. A violação das regras sintáticas é considerada um erro sujeito à pena do não reconhecimento por parte do tradutor; Semântica é o signicado, ou seja, o conjunto de ações que serão exercidas pelo computador durante a execução do referido comando. Daqui em diante, todos os comando novos serão apresentados por meio de sua sintaxe e sua semântica, isto é, a forma como devem ser escritos e a(s) ação(ões) que executam. 1.5 REPRESENTAÇÃO DE ALGORITMOS ATRAVÉS DE FLUXOGRAMAS Fluxograma é uma representação gráca de algoritmos onde formas geométricas diferentes implicam ações distintas. Tal propriedade facilita o entendimento das idéias contidas nos algoritmos. Nota-se que os uxogramas convencionais preocupam-se com detalhes de nível físico da implementação do algoritmo. Por exemplo, guras geométricas diferentes são adotadas para representar operações de saída de dados realizadas em dispositivos distintos, como uma unidade de armazenamento de dados ou um monitor de vídeo. A gura 1.3 mostra as principais formas geométricas usadas em uxogramas. De modo geral, o uxograma se resume a um único símbolo inicial, por onde a execução do algoritmo começa, e um ou mais símbolos nais, que são pontos onde a execução do algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado a ser seguido, representando a existência de uma única seqüência de execução das instruções. Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem convergir para uma mesma gura do diagrama, há sempre um único caminho saindo desta. Exceções a esta regra são os símbolos nais, dos quais não há nenhum uxo saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída (normalmente dois caminhos), representando uma bifurcação no uxo. Um diagrama de blocos é uma forma de uxograma usada e desenvolvida por prossionais da programação, tendo como objetivo descrever o método e a seqüência do processo dos planos num computador. Pode ser desenvolvido em qualquer nível de detalhe que seja necessário. Quando se desenvolve um diagrama para o programa principal, por exemplo, seu nível de detalhamento pode chegar até as instruções. Esta ferramenta usa diversos símbolos geométricos, os quais, estabelecerão as seqüências de operações a serem efetuadas em um processamento computacional. Após a elaboração do diagrama de bloco, é realizada a codicação do programa. A gura abaixo mostra o exemplo de um diagrama de blocos ou uxogramas. A gura 1.4 mostra como caria a representação de um algoritmo que calcula a média EXERCÍCIOS 1 a Questão) Dena, com suas palavras, o que é algoritmo. 2 a Questão) Cite alguns algoritmos que podemos encontrar na vida quotidiana. 3 a Questão)De acordo com seu entendimento, qual é a característica mais importante em um algoritmo? Justique a sua resposta. 4 a Questão) Um algoritmo não pode conter um comando como Escreva todos os números inteiros positivos. Por quê? 5 a Questão) Suponha que temos um robô a nossa disposição. Esse robô chama-se MANNY e precisa ser ensinado a fazer determinadas tarefas. Para ensinar o MANNY, vamos fazer uso do 6

10 7 Figura 1.3: Simbologia dos Fluxogramas português para passar-lhe as instruções necessárias à execução de cada atividade. Escreva os passos necessários para o nosso robô executar: encher uma bacia com água; trocar uma lâmpada no teto de sua casa; trocar o pneu de um carro; calcular a sua idade daqui a 20 anos; calcular a média de um aluno com 3 notas. 6 a Questão) É comum ouvirmos programadores experimentados armarem: algoritmos... aprendi e nunca usei na prática... não vejo necessidade... Discuta esse tipo de armativa. 1.6 INTRODUÇÃO A LINGUAGEM PASCAL A linguagem Pascal se destina à programação de computadores. Foi desenvolvida no nal dos anos 60 na Suíça e seu nome é uma homenagem ao criador da primeira calculadora mecânica, o matemático francês do século XVII Blaise Pascal.

11 8 Figura 1.4: Fluxograma Cálcula Média Um dos principais fatores que motivaram o surgimento da linguagem foi a obtenção de uma linguagem simples, capaz de incentivar a edição de programas claros e facilmente legíveis, favorecendo a utilização das boas técnicas de programação. Assim como as outras linguagens de programação, o Pascal possui várias versões. Cada fabricante cria sua própria versão com suas particularidades. As versões mais famosas são o Turbo Pascal, da Borland International, e o MS-Pascal, da Microsoft. Existem versões de Pascal para todos os tipos de computadores, desde MSX e CP-500 a computadores de grande porte como o IBM À medida que o tempo passa, cada fabricante costuma atualizar e melhorar as versões de seus programas. O mesmo acontece com as linguagens de programação. Em 1983, a Borland criou o Turbo Pascal, versão 1. Essa versão inicial passou por sucessivas atualizações até que em 1991 tínhamos o Turbo Pascal, versão 6. Neste texto, onde nos referirmos simplesmente à linguagem Pascal, estamos nos referindo à versão 5 do Turbo Pascal, lançada em PROGRAMAS FONTE, OBJETO E EXECUTÁVEL Normalmente, quando pensamos em elaborar um programa, estamos pensando em fazer um texto com palavras do tipo "read", "write", "function", "end", etc. Neste texto, cada palavra escrita obedece a uma gramática rigorosa ditada pela linguagem de programação. Queremos que o computador execute cada comando associado a cada palavra que escrevemos. Este texto a que estamos nos referindo é chamado programa fonte. Internamente, todo computador só entende uma linguagem chamada linguagem de máquina, formada exclusivamente por números binários, cujos únicos algarismos são 0 e 1. Logo, o programa fonte deve passar por algum processo de tradução para que o computador possa entendê-lo. Essa tradução é chamada compilação. O programa fonte, após a compilação, recebe o nome de programa objeto. Apesar do programa objeto estar na linguagem do computador, ele ainda não pode ser executado pois, sob um certo aspecto, está ainda incompleto. Faltam instruções nele que ensinem o computador a

12 executar os comandos básicos da linguagem. Por exemplo, você pode usar uma função trigonométrica no seu programa fonte, e na hora dela ser executada, o computador saberá como calculá-la. Quem é que ensina ao computador a calcular valor de função trigonométrica? A resposta a essa pergunta é simples: toda linguagem de programação possui um conjunto de instruções básicas pronto para ser adicionado a qualquer programa objeto. Esse conjunto de instruções é a biblioteca padrão da linguagem. O ato de ligar (link) o programa objeto à biblioteca padrão é chamado ligação (que algumas pessoas chamam de "linkagem", talvez pelo hábito de usar neologismos). O programa objeto após a ligação com a biblioteca padrão torna-se um programa executável Programa COMPILAÇÃO Programa fonte > objeto > Programa executável Biblioteca padrão NOMES DOS ARQUIVOS EM DISCO Os nomes com os quais os programas de qualquer linguagem de programação são gravados no disco, obedecem às regras de formação de nomes do sistema operacional: todo arquivo do disco é especicado por um nome obrigatório com no máximo 8 caracteres e uma extensão opcional com no máximo 3 caracteres. O nome e a extensão são separados por um ponto. Os caracteres que podem aparecer no nome ou extensão são letras, algarismos e alguns caracteres especiais como: ( ) - _ # Não podem fazer parte donome ou extensão os seguintes caracteres: +? * \ / < > [ ] : ;,. É comum um programa fonte em Pascal ter extensão PAS. Se você não mencionar a extensão de um arquivo, o Pascal incluirá automaticamente a extensão PAS, sempre que for feito algum uso do mesmo. Neste caso, dizemos que PAS é a extensão "default"( = omissão, falta) do Pascal. A extensão, geralmente, classica o tipo do arquivo. Algumas extensões bastante comuns são: PAS ---> Programa fonte em Pascal BAS ---> Programa fonte em BASIC C ---> Programa fonte em C FOR ---> Programa fonte em FORTRAN PRO ---> Programa fonte em PROLOG ASM ---> Programa fonte em Assembly BAK ---> Arquivo cópia (back up) de outro BAT ---> Arquivo de lote (batch) EXE ---> Programa executável

13 10 COM ---> Programa executável OBJ ---> Programa objeto SYS ---> Arquivo usado pelo sistema operacional DOC ---> Texto TXT ---> Texto TPU ---> Unidade do Turbo Pascal Por exemplo, para um programa que trate da resolução de sistemas lineares, um nome natural poderia ser SISTEMA.PAS. No entanto, o usuário poderia chamá-lo se quisesse. Ambos são nomes válidos para o Pascal, aliás, para o DOS. Se no disco aparecer também um SISTEMA.BAK e um SISTEMA.EXE, então é muito provável que o SISTEMA.BAK seja apenas uma cópia do SISTEMA.PAS e o SISTEMA.EXE seja sua versão executável. Outras versões de Pascal, bem como outras linguagens de programação, costumam criar arquivos OBJ no disco, correspondentes aos programas objeto, mas não é esse o caso do Turbo Pascal. Logo, o programa objeto correspondente a SISTEMA.PAS será mantido apenas na memória e você não terá em disco um SISTEMA.OBJ.

14 11 2 FUNDAMENTOS DA PROGRAMAÇÃO EM PASCAL 2.1 ESTRUTURA DE UM PROGRAMA EM PASCAL Um programa em Pascal é um conjunto de palavras e símbolos especiais (comandos, variáveis, funções, algarismos, parênteses,...) escritos segundo as regras de uma sintaxe pré-xada e possui a seguinte estrutura: Cabeçalho; Especicação das unidades usadas pelo programa; Declarações de tipos, constantes, variáveis, rótulos, funções e procedimentos; Seção principal. O cabeçalho é usado para dar nome ao programa e possui a forma: PROGRAM Nome_do_programa; O cabeçalho é identicado pela palavra chave PROGRAM, seguida de um nome que identicará o programa, e encerra-se com um ponto-e-vírgula. Ele serve apenas para orientação do usuário. Exemplo: PROGRAM Teste; Uma linha como essa, atribui o nome Teste a um programa. A especicação das unidades usadas é feita com um comando USES, seguido dos nomes das unidades a serem usadas separadas por vírgula, com um ponto-e-vírgula no nal da linha: USES unidade1, unidade2,... ; Em Pascal, diversos comandos podem ser agrupados em conjuntos denominados unidades (units). Temos assim uma unidade para vídeo, outra para manipulação de arquivos em disco, outra com os comandos grácos, etc. Exemplo: USES Crt, Graph; Esta declaração permite que sejam usados no programa comandos, funções, constantes,... das unidades CRT e GRAPH. A seção principal do programa inicia-se com a palavra chave, seguida de linhas de comandos, e encerra-se com a palavra chave END seguida de um ponto:

15 12 comando1; comando2; END. A seção principal é a única parte obrigatória de um programa em Pascal. No entanto, em todo programa, tudo que vier a ser usado deverá ter sido declarado antecipadamente de forma adequada. A execução de todo programa inicia-se pela seção principal. Não serão diferenciadas letras minúsculas de maiúsculas e serão ignorados os espaços em branco. O nal de um comando ou declaração é sinalizado por um ponto-e-vírgula. As quatro expressões a seguir serão consideradas idênticas: (1) X := A + B + C; (2) x:=a+b + C; (3) x := a + (4) X := b + a + B c; IDENTIFICADORES Um identicador é um conjunto de caracteres usado para dar nome a um programa, unidade, rótulo, variável, tipo, constante, função ou procedimento. Todo identicador deve iniciar-se com uma letra e pode ser seguido por qualquer quantidade de outras letras, algarismos ou o sinal de sublinhado ( _ ). Somente os 63 primeiros caracteres serão considerados signicativos. Exemplo: Identificadores permitidos: X, a1, Nota, NomeDoAluno, Valor_Maximo_de_F, MIN2P3. Identificadores inválidos: 1a, _Nota_Um, A+B, A(2). O comprimento do nome de um identicador não tem efeito negativo sobre o desempenho de um programa. Assim, o usuário está livre para criar nomes longos para variáveis, funções, etc. sem o risco de tornar o programa lento. De preferência, os nomes dos identicadores devem sugerir alguma relação com o que estiver sendo identicado. Alguns identicadores especiais só podem ser usados pela linguagem com um signicado já pré-xado. Esses identicadores são chamados palavras reservadas ou palavras chave e são os seguintes: ABSOLUTE GOTO RECORD AND IF REPEAT ARRAY IMPLEMENTATION SET IN SHL CASE INLINE SHR CONST INTERFACE STRING

16 13 DIV INTERRUPT THEN DO LABEL TO DOWNTO MOD TYPE ELSE NIL UNIT END NOT UNTIL EXTERNAL OF USES FILE OR VAR FOR PACKED WHILE FORWARD PROCEDURE WITH FUNCTION PROGRAM XOR Existem, ainda, alguns identicadores que, apesar de terem um signicado pré-denido para o Pascal, não são palavras reservadas, como por exemplo: REAL, INTEGER, READ, WRITE, PI, SIN, COS. O signicado ou a função desses identicadores podem ser redenidos e alterados pelo usuário TIPOS DEFINIDOS DO PASCAL O diagrama a seguir, classica os tipos pré- denidos do Pascal que serão mais utilizandos no curso TIPOS PRÉ-DEFINIDOS SIMPLES ESTRUTURADOS Array string ordinal real boolean char inteiro real integer Vale ressaltar que a linguagem não possui apenas os tipos abaixo, mas estes é que aparecerão em 99% dos problemas. Em resumo vamos trabalhar com o seguintes tipos:

17 14 - Integer - Real - String - Char - Boolean (Lógico) - Array TIPO INTEIRO O tipo inteiro formado pelo subconjunto de inteiros, de acordo com a seguinte tabela: Tipo Domínio Tamanho integer [-32768, 32767] 2 bytes TIPO BOOLEAN O tipo boolean é formado pelas constantes TRUE (verdadeiro) e FALSE (falso) e é usado para se avaliar expressões lógicas. É um dos tipos mais usados do Pascal TIPO CHAR O tipo caracter (char) é formado pelo conjunto dos 256 caracteres ASCII (letras, algarismos e símbolos especiais como +, =, %, $, #, <, etc.). As constantes deste tipo são escritas entre apóstrofos: 'A', 'B', '3', etc TIPO REAL O tipo real possui o seguinte domínio e tamanho: Tipo Domínio Dígitos Tamanho real [2.9E-39, 1.7E38] bytes Em Pascal, as potências de 10 são indicadas com um E. Por exemplo, 2E07 é o mesmo que 2 vezes 10 elevado a 7; 3.28E-11 é o mesmo que 3,28 multiplicado por 10 à -11. Os domínios anteriores referem-se aos valores absolutos das constantes. Com isso, temos que o tipo real da tabela acima corresponde aos números que estão na união dos intervalos [2.9E-39, 1.7E38] e [-1.7E38, -2.9E-39]. Está sendo indicada também a quantidade de dígitos signicativos de cada tipo TIPO STRING O tipo string é uma seqüência de caracteres de comprimento variando de 0 a 255. Escrevendo string[n], estamos denindo N como tamanho máximo da seqüência (neste caso N deve ser menor ou igual a 255). As constantes do tipo string devem estar entre apóstrofos. Exemplo: TYPE Nome = string[40];

18 Neste exemplo está sendo declarado o tipo Nome que é uma seqüência de até 40 caracteres. Podem ser consideradas deste tipo as constantes 'Turbo Pascal 5.0', '1991/1992' e 'UFPB - CCEN - Dep. de Matematicá. Falaremos dos tipos restantes em capítulos posteriores DECLARAÇÃO DE VARIÁVEIS Todas as variáveis usadas por um programa em Pascal devem obrigatoriamente ser declaradas com antecedência em um bloco de declarações VAR da seguinte forma: 15 VAR Identificador,..., Identificador: Tipo1; Identificador,..., Identificador: Tipo2; Seguem alguns exemplos de declaração de variáveis na linguagem Pascal: VAR x, y, z: real; i, j, k: integer; Inicio, Fim: boolean; Tamanho: integer Nome_do_arquivo: string[15]; Neste bloco VAR estão sendo declaradas as variáveis x, y, z como sendo do tipo real, uma variável Tamanho do tipo integer, além de outras variáveis (i, j,...). Os tipos das variáveis não podem ser mudados durante a execução do programa e os valores que elas podem assumir devem ser compatíveis com o seu tipo declarado. Por exemplo, a variável i acima pode assumir o valor 2309, mas não pode assumir um valor fracionário como DECLARAÇÃO DE CONSTANTES As constantes de um programa Pascal devem ser declaradas em um bloco CONST na forma: CONST Identificador = Expressão; Identificador = Expressão; Identificador: tipo = Valor; Identificador: tipo = Valor; Seguem alguns exemplos de declaração de constantes: CONST

19 16 Pi = ; NumeroMaximoDeLinhas = ; Mensagem: string[20] = 'Hello world!'; X: integer = 7; As constantes que são declaradas sem a especicação de tipo não podem ser alteradas durante a execução do programa. Aquelas cujas declarações contiverem o tipo base, chamadas constantes tipadas, desempenham um papel parecido com o das variáveis e podem ser alteradas durante a execução do programa. A diferença entre uma variável e uma constante tipada é que a variável não pode ter nenhum "valor inicial"na sua declaração COMANDO DE ATRIBUIÇÃO A atribuição de um valor ou de uma expressão a um identicador é feita através do operador de atribuição :=. A sintaxe de uma operação de atribuição é: Identificador := expressão; Neste tipo de operação, a expressão e o identicador devem ser do mesmo tipo, exceto no caso em que o identicador for do tipo real e a expressão do tipo inteiro (pois, neste caso, o valor inteiro da expressão será automaticamente transformado em real). Exemplo: Considere a seguinte declaracão de variáveis: VAR a, b, c: integer; x, y: real; teste: boolean; data: string; Neste caso, são válidas as atribuições: a := -17; x := y ; teste := false; data := '5/12/1991' Mas não são válidas as atribuições: teste := a + b + 1; c := 6.02E23; Em caso de várias atribuições a um mesmo identicador, será considerada apenas a última atribuição efetuada.

20 2.1.6 COMENTÁRIOS Comentários são usados para aumentar a clareza de um programa. Todos os comentários são desprezados na hora da compilação, logo, eles não têm inuência no desempenho e nem no tamanho do programa objeto. Um comentário é colocado entre chaves ou entre (* e *). { Este é um exemplo de comentário... } (* e este também é um comentário! *) Para o Pascal, as declarações VAR abaixo serão consideradas equivalentes. Para o usuário, o segundo bloco de declarações VAR oferece mais clareza. VAR mat, nota, cod: string; VAR mat, { matrícula } nota, { nota final } cod: { codigo do curso } string; EXPRESSÕES ARITMÉTICAS As operações aritméticas pré-denidas do Pascal são: + Adição - Subtração / Divisão * Multiplicação DIV Quociente da divisão MOD Resto da divisão inteira inteira 9/2 = 4.5-3*7 = DIV 2 = 4 9 MOD 2 = 1 10 DIV 2 = 5 10 MOD 2 = 0 Estas operações podem ser utilizadas com operandos reais ou inteiros, exceto DIV e MOD que exigem operandos inteiros. A prioridade entre as operações é a mesma da Matemática: i. Primeiramente, são efetuadas as multiplicações e divisões (/, DIV e MOD); ii. por último, são efetuadas as adições e subtrações. Temos então dois níveis de prioridades. Dentro de um mesmo nível, são efetuadas as operações da esquerda para a direita. Exemplo: Na expressão 5-2/3*7 + 1 as operaçoes são efetuadas na seguinte ordem: divisão, multiplicação, subtração e adição. Se uma expressão contiver parênteses, então será executado primeiramente o que estiver entre parênteses. Exemplo: 17

21 18 Observações: Expressão Valor *4 13 (5 + 2)* DIV 2*3 9 7 DIV (2*3) i. Não existe operador pré-denido para a potenciação. ii. O sinal de multiplicação nunca poderá ser omitido. iii. A divisão / sempre fornece um resultado real, mesmo que os operandos sejam inteiros. iv. Se todos os operandos forem inteiros e as operações envolvidas forem +, -, *, MOD ou DIV, então o resultado será inteiro FUNÇÕES MATEMÁTICAS PRÉ-DEFINIDAS Entre as muitas funções pré-denidas do Pascal, as que estão relacionadas com valores numéricos são: Função Descrição Tipo do resultado LN Logaritmo natural real EXP Exponencial de base e real ABS Valor absoluto real ou inteiro SQR Quadrado real ou inteiro SQRT Raiz quadrada real SIN Seno real COS Cosseno real ARCTAN Arco-tangente real ROUND Arredondamento inteiro TRUNC Parte inteira inteiro INT Parte inteira real FRAC Parte fracionária real ODD Testa se é ímpar booleano Em todas elas deve-se acrescentar um argumento entre parênteses à frente do nome da função, como em COS(x) ou SQRT(y). O Pascal não tem pré-denidas funções como tangente, secante, arco-seno,.... Em breve será mostrado como o usuário poderá denir essas funções, bem como outras com domínio e contradomínio mais complexos. Exemplo: O modulo do seno do quadrado de x e codicado como ABS(SIN(SQR(x))). Neste tipo de expressão, é obrigatório que a quantidade de parênteses abertos seja a mesma de fechados. Exemplo: O quociente entre x 2 + 3x e x se escreve como (SQR(x) + 3*x)/(SQR(x) + 5) ou como (x*x + 3*x)/(x*x + 5). Nestes casos, o uso dos parênteses é fundamental.

22 Exemplo: A derivada do arco-seno de x, ou seja, 1 sobre a raiz quadrada da diferença entre 1 e o quadrado de x, se escreve como 1/SQRT(1 - SQR(x)). Exemplo: O cubo de x pode ser codicado como x*x*x, ou como EXP(3*LN(x)). Em geral, x elevado a y pode ser codicado como EXP(y*LN(x)). Exemplo: A função booleana ODD testa se um inteiro n e impar ou não. ODD(n) fornece um valor TRUE se n for ímpar e FALSE em caso contrário. Desse modo, ODD(5) = TRUE e ODD(4) = FALSE. Exemplo: TRUNC(1.35) = 1 (inteiro) TRUNC(1.97) = 1 (inteiro) INT(1.35) = 1 (real) INT(1.97) = 1 (real) ROUND(1.35) = 1 ROUND(1.97) = 2 FRAC(1.35) = 0.35 FRAC(1.97) = 0.97 As funções INT e TRUNC são numericamente equivalentes. A diferença entre elas está apenas no tipo do valor retornado EXPRESSÕES LÓGICAS Expressão lógica (ou expressão booleana) é uma expressão cujos operadores são operadores lógicos e cujos operandos são relações ou variáveis do tipo booleano. Os operadores lógicos são AND (e), OR (ou), NOT (não) e XOR (ou exclusivo). Se X e Y são variáveis ou constantes booleanas, então: i. X AND Y é TRUE somente quando X e Y forem ambas TRUE. ii. X OR Y é FALSE somente quando X e Y forem ambas FALSE. iii. NOT X é TRUE quando X for FALSE e é FALSE quando X for TRUE. Uma relação é uma comparação realizada entre valores do mesmo tipo, cujo resultado é TRUE ou FALSE. A comparação é indicada por um dos operadores relacionais a seguir: = igual <> diferente < menor > maior <= menor ou igual >= maior ou igual 19 No caso de variáveis do tipo CHAR ou STRING, será usada a ordem alfabética para comparar duas constantes ou variáveis. Exemplo: Sejam a, b, c, d variaveis booleanas cujos valores são: a := 1 < 2; b := 3 >= 5; c := a OR b; d := a AND b; Como 1 < 2 é uma relação verdadeira, temos que a tem valor TRUE; 3 >= 5 é falso, logo, b tem valor FALSE. Sendo a TRUE e b FALSE temos que c é TRUE, pois a OR b só seria FALSE se a e b fossem ambas FALSE. O valor de d é FALSE, uma vez que b é FALSE. Exemplo: Consideremos as variaveis x, y, z, nome1, nome2 e teste declaradas abaixo:

23 20 VAR x, y, z: byte; nome1, nome2: string; teste: boolean; Considere também as seguintes atribuições: x := 3; y := 10; z := 4; nome1 := 'Guizinha'; nome2 := 'Olezinho'; teste := false; Temos então: Expressão Valor x <= y TRUE (x = z) OR (x + z >= y) FALSE nome1 < nome2 TRUE (nome1 <> nome2) AND (NOT teste) TRUE (nome1 = nome2) AND (x = y) FALSE (NOT (x > z)) OR teste OR (y <> z) TRUE Odd(x) AND (NOT Odd(y)) TRUE Odd(x) XOR Odd(y + 1) FALSE (x mod 3 = 0) AND (y div 3 <> 1) FALSE Sqr(Sin(x)) + Sqr(Cos(x)) = 1 TRUE A prioridade das operações aritméticas, lógicas e relacionais está denida na seguinte tabela: Prioridade Operadores (alta) NOT 2 *. /, DIV, MOD, AND 3 +, -, OR, XOR 4 (baixa) =, <=, >=, <, >, <> EXERCÍCIOS 1 a Questão) Escreva as seguintes expressões de acordo com a sintaxe do Pascal: 3 2 a) sen(2x) = 2.sen(x).cos(x) b) x + 5x - 2x + 4

24 21 1 arctg(x) + x c) d) e Ln(x + Ln(x)) a Questão) Considere as constantes e as variáveis denidas abaixo: CONST x: real = -3.2; y: real = 4.00; m: integer = 7; n: integer = 11; p: integer = -5; VAR a: integer; z: real; a) Calcule os valores de a ou z após as seguintes atribuições: i) a := m MOD 2 + n DIV (m + p); ii) a := TRUNC(x)*ROUND(SQRT(2)) iii) a := SQR(p + 1) MOD (m MOD ABS(p)); iv) z := SQRT(2*m + p)/round(exp(1)); v) z := INT(11/7) - FRAC(1/(1 + n + 2*p)); b) Detecte o que está errado com as atribuições abaixo: i) a := 1 + 3*y; ii) a := ((n - 1)/2) MOD 3; iii) z := SIN(1 - COS(ARCTAN(2)); iv) z + 5 := x - y; 3 a Questão) Sejam a, b, c três variáveis que, em determinado momento da execução de um programa, valem respectivamente 1, 2 e 3. Avalie o valor das seguintes expressões lógicas: a) Odd(a) OR Odd(b) AND Odd(c); b) NOT (b <> (a + c) DIV 2) AND NOT (a = 0) c) (a = b + c) XOR (b = c + a) d) (c >= a) AND (NOT (a = 5*b - 3*c) OR (c <= a + b)) 4 a Questão) X e Y são duas constantes com valores -3 e 5, e CLASSIFICA é uma variável booleana com valor FALSE em determinado momento. Determine o valor que está sendo atribuído à variável booleana TESTE em cada um dos casos:

25 a) TESTE := X > Y; b) TESTE := NOT (Abs(X*Y) >= 5e20); c) TESTE := (X > 0) OR (Y > 10*Abs(X)) OR Classifica; d) TESTE := (X + Y > 1) AND (Sqrt(Y) < 1.2E-9); 22

26 23 3 ENTRADA E SAÍDA DE DADOS Os comandos de entrada ou saída fazem a comunicação entre o programa que está sendo executado e os periféricos de entrada (teclado, disco) ou os de saída (vídeo, disco, impressora). A entrada ou saída de dados para um disco será tratada em capítulo posterior. 3.1 COMANDOS DE ENTRADA Um comando de entrada, também chamado de comando de leitura, transfere dados do dispositivo de entrada (teclado) para uma ou mais variáveis na memória, funcionando como um comando de atribuição. Os dados que entram devem ser compatíveis com os tipos das variáveis. Dois dos comandos de entradas do Pascal são READ e READLN, cujas sintaxes são: READ(Var1, Var2,...); ---> Transfere dados para as variáveis Var1, Var2,... READLN(Var1, Var2,...); ---> Transfere dados para as variáveis Var1, Var2,... e, após a leitura dos dados, posiciona o cursor no início da próxima linha da tela. Cada comando de leitura deve ser encerrado pressionando-se a tecla ENTER. Caso haja mais de um dado a ser lido por um comando de leitura, deve-se separá-los por pelo menos um espaço em branco. Exemplo: Suponhamos que A e B sejam duas variaveis reais de um programa. Quando a execução do programa chegar em um comando como Read(A, B); Então o computador cará esperando que sejam digitados dois números reais para que sejam atribuídos às variáveis A e B. Por exemplo, digitando-se uma linha como Pressionando-se ENTER ao nal da digitação dos números, serão atribuídos os valores 3.05 a A e a B. É como se o programa contivesse as atribuições: A := 3.05; B := -5.17;

27 3.2 COMANDOS DE SAÍDA Um comando de saída transfere dados para um dispositivo de saída (vídeo, impressora). Os dados que podem ser transferidos são valores ou expressões envolvendo constantes ou variáveis. Dois comandos de saída bastante usados são WRITE e WRITELN que têm sintaxes: 24 WRITE(v1, v2,...); ---> Mostra na tela os valores de v1, v2,... WRITELN(v1, v2,...); ---> Mostra na tela os valores de v1, v2,... e posiciona o cursor no início da próxima linha na tela. Onde v1, v2,... acima podem ser expressões envolvendo variáveis ou constantes do tipo inteiro, real, string, booleano ou char. Exemplo: Suponhamos que X seja uma variavel inteira de um programa, com valor 15 no momento em que for executado o comando: WRITELN('O valor encontrado foi ', X); Neste caso, o computador mostrará na tela algo como: O valor encontrado foi 15 Depois posicionará o cursor no início da linha seguinte a essa na tela. Observe que a mensagem "O valor encontrado foi "é uma constante do tipo string. Portanto, neste exemplo, o comando de saída mostra os valores de uma constante e de uma variável. Exemplo: Suponhamos que X, Y, Z, A, B e C sejam variaveis com valores respectivamente iguais a ' Antonio ', ' Jose ', ' Maria ', 60, 75 e 90. Então, o comando: WRITELN(x, a, y, b, z, c); Exibirá na tela algo como: Antonio 60 Jose 75 Maria 90 A seqüência de comandos: WRITELN(x); WRITELN(a); WRITELN(y); WRITELN(b); WRITELN(z); WRITELN(c); Mostrará algo como:

28 25 Enquanto que Antonio 60 Jose 75 Maria 90 WRITELN(x, y, z); WRITELN(a, b, c); Exibirá: Antonio Jose Maria Em cada um desses casos, o cursor cará posicionado no início de uma nova linha. Exemplo: Vamos elaborar agora nosso primeiro programa completo. Queremos digitar dois números inteiros no teclado e desejamos que o computador mostre sua soma no vídeo. Sejam Num1 e Num2 os nomes das variáveis que vão guardar na memória os valores dos números digitados no teclado. A atribuição de valores a Num1 e Num2, neste caso, será feita por um comando como Ou como: READ(Num1, Num2); READLN(Num1, Num2); No entanto, quando o computador executar esse tipo de comando, em momento nenhum ele lhe indicará se ele está esperando um, dois, três ou mais números. Tampouco indicará o tipo de dado que está sendo esperado, se é um dado numérico ou não. Devido a isso, é recomendado que antes de qualquer comando READ ou READLN, o programa contenha uma linha anterior com um WRITE ou WRITELN para mostrar alguma mensagem que oriente o usuário. Neste caso, colocaremos um comando WRITE para mostrar a mensagem Forneca dois numeros inteiros :. WRITE('Forneca dois numeros inteiros : '); Uma vez introduzidos os valores de Num1 e Num2, para somá- los e mostrar o resultado da soma na tela, basta colocar a expressão Num1 + Num2 em um comando de saída: WRITELN('Soma = ', Num1 + Num2);

29 Observe que neste WRITELN temos uma constante do tipo string 'Soma = ' e uma expressão aritmética Num1 + Num2. Nosso programa ca, então, com o seguinte aspecto: PROGRAM SomaDeDoisInteiros; VAR Num1, Num2: integer; WRITE('Forneca dois numeros inteiros : '); READLN(Num1, Num2); WRITELN('Soma = ', Num1 + Num2); END. Estamos atribuindo o nome SomaDeDoisInteiros ao programa. Observe que os comandos do programa (WRITE..., READLN...,...) devem car na seção principal do programa delimitados pelas palavras e END. Não pode ser omitido o ponto após o END. O bloco VAR de declaração de variáveis deve vir antes da seção principal. É comum se deslocar para a direita as linhas de comandos compreendidas entre um e um END. Esse tipo de deslocamento é chamado endentação. Uma vez digitado este programa, pressione simultaneamente as teclas CTRL e F9 para que ele seja executado.no caso deste programa, você verá em uma parte da tela algo parecido com: Forneca dois numeros inteiros : Soma = 38 _ 26 O caracter de sublinhado _ acima representa a posição do cursor na tela. Qualquer outra saída de dado posterior à execução do programa seria feita a partir dessa posição. Se a seção principal deste programa fosse: WRITELN('Forneca dois numeros inteiros : '); READLN(Num1, Num2); WRITE('Soma = ', Num1 + Num2); END. Então teríamos uma tela como: Forneca dois numeros inteiros : Soma = 38_ Observe a diferença na posição nal do cursor. Observação: sem parâmetros, ou seja, só o nome do comando seguido imediatamente de um ponto e vírgula. Um WRITELN sem parâmetros causa a impressão de uma linha em branco. Por exemplo:

30 27 WRITELN; WRITELN; WRITELN; Isso causa a impressão de três linhas em branco. Um READLN sem parâmetros faz o computador car esperando que se pressione a tecla ENTER para poder continuar. Temos assim, uma maneira de causar uma pausa na execução de um programa. Durante a execução do fragmento de programa a seguir, o computador coloca uma mensagem na tela (Para continuar...), e pára temporariamente a execução até ser pressionado ENTER WRITE('Para continuar, pressione [ENTER]'); READLN; FORMATAÇÃO A impressão dos valores a serem impressos por um WRITE ou WRITELN pode ser formatada através da especicação da largura do campo de impressão ou do número de casas decimais. Para valores do tipo inteiro, booleano, string ou char, basta colocar o tamanho do campo de impressão à direita do valor a ser impresso. Neste caso, o valor e o tamanho do campo devem estar separados por dois pontos (:). WRITE(V:n) ou WRITELN(V:n) ---> Imprime o valor de V em um campo de n espaços Se o valor de n for maior do que a quantidade necessária para a impressão do valor de V, então a largura do campo será completada com espaços em branco adicionados à esquerda. Exemplo: Consideremos x1, x2, s1, s2 variaveis com valores denidos pelas atribuições x1 := 8; s1 := 'A'; x2 := 19; s2 := '*'; Para cada comando WRITE abaixo, temos as seguintes saídas mostradas na tela: Comando Saída WRITE(x1) 8 WRITE(x1:2) ^8 WRITE(x1:10) ^^^^^^^^^8 WRITE(x1, s1, x2, s2) 8A19* WRITE(x1, ' ', s1, ' ', x2, ' ', s2) 8^Â19^* WRITE(x1, s1:2, x2:5, s2:3) 8^Â^^19^^* WRITE(x1:6, x2:2) ^^^^^819 WRITE(x1, ' ':5, x2) 8^^^^^

31 O símbolo na tabela acima assinala os espaços em branco. Em um comando WRITE ou WRITELN, a impressão de n espaços em branco pode ser feita acrescentando-se à lista de valores a serem impressos uma expressão da forma ' ':n, como no último exemplo da tabela acima. O tamanho do campo de impressão pode ser uma expressão aritmética. Por exemplo, WRITE(dado:5) é o mesmo que WRITE(dado:( )). Para se formatar a impressão de um valor real, devem ser fornecidos dois inteiros que correspondem ao tamanho do campo de impressão e à quantidade de casas decimais a serem impressas. WRITE(x:M:N) ou WRITELN(x:M:N) ---> Imprime o valor de x em um campo de largura M, com N casas decimais. Se o valor de M for maior do que a quantidade necessária para a impressão do valor de x, então a largura do campo será completada com espaços em branco adicionados à esquerda. O ponto decimal ou o sinal negativo ocupam um espaço do campo de impressão. O tamanho do campo de impressão e a quantidade de casas decimais podem ser fornecidos em forma de expressão aritmética. Valores reais sem formatação são impressos em forma de potências de 10. Exemplo: Consideremos Pi e X constantes reais com valores respectivamente iguais a e A tabela a seguir mostra as diversas saídas geradas pelo respectivo comando WRITE. Denotamos os espaços em branco por. Comando Saída WRITE(X:9:3) WRITE(X:15:2) ^^^^^^^ WRITE(X:10:2) ^^ WRITE(X) E+03 WRITE(Pi) E+00 WRITE(Pi:4:2) 3.14 WRITE(Pi:7:2) ^^^3.14 WRITE(Pi:10:3) ^^^^^3.141 WRITE(Pi:10:6) ^^ WRITE(Pi:10:8) WRITE(Pi:5:0) ^^^^ Exemplo: Vamos construir agora um programa que solicita ao usuário a medida de um ângulo em graus (um número inteiro) e mostra na tela o seno, o cosseno e a tangente do ângulo fornecido. As funções trigonométricas pré-denidas SIN(x) e COS(x) operam com um ângulo x em radianos. Logo, o programa deve ser esperto o suciente para transformar o ângulo em graus, fornecido pelo usuário, para um valor equivalente em radianos. Isto é feito através de uma multiplicação por Pi/180. O Pascal tem o valor de Pi pré-denido com 19 casas decimais. Vamos usar três variáveis reais "seno", "cosseno"e "tangente"para guardar os valores desejados. Vamos exigir que a impressão dos valores seja em um campo com 8 espaços e 4 casas decimais. PROGRAM Sen_Cos_Tg; { Calculo do seno, cosseno e tangente de um angulo } VAR 28

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

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

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático

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

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Objetivos Compreender os conceitos de lógica de programação e de algoritmos. Conhecer

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

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

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

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

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

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

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação Introdução Algoritmos e Lógica de Programação Tipos de dados Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Informações a serem processadas pelo computador. Consideremos

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

TRABALHANDO COM ARQUIVOS ENTRADAS/SAÍDAS (I/O) DE DADOS

TRABALHANDO COM ARQUIVOS ENTRADAS/SAÍDAS (I/O) DE DADOS livrof90_v5 2007/3/1 10:27 page 41 #1 CAPÍTULO2 TRABALHANDO COM ARQUIVOS ENTRADAS/SAÍDAS (I/O) DE DADOS Neste capítulo você encontrará: 2.1 Introdução.................. 41 Arquivo................. 42 2.2

Leia mais

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO Memória Variáveis e constantes Tipos primitivos de dados Operadores Comandos

Leia mais

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos LÓGICA DE PROGRAMAÇÃO Vitor Valerio de Souza Campos Exemplos de algoritmos Faça um algoritmo para mostrar o resultado da multiplicação de dois números. Algoritmo em descrição narrativa Passo 1 Receber

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

MANIPULAÇÃO DE STRINGS

MANIPULAÇÃO DE STRINGS MANIPULAÇÃO DE STRINGS O TIPO DE DADO STRING Os strings, como trechos de texto, são os tipos de dados mais familiares aos seres humanos. O Pascal padrão não fornecia tipos de dados de String; tínhamos

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 Aulas 2-3-4-5-6-7-8 Lógica Algoritmos Portugol

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: Tipos, Variáveis e Expressões

Programação: Tipos, Variáveis e Expressões Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade

Leia mais

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes Pág 4 Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Lógica para a programação tem como objetivo promover o estudo dos principais

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

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

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

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90. Capítulo 8. CICLOS OBJETIVOS DO CAPÍTULO Conceito de ciclo Comandos do FORTRAN: DO END DO, EXIT 8.1 programa8a.f90 Para inicializar as atividades deste capítulo, deve-se executar: 1) Para acessar o programa

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 5 Instruções de controle: Parte 2 Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 5.1 Introdução Instrução de repetição for Instrução de repetição do while Instrução de seleção

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva Algoritmos Estruturas Seqüenciais José Gustavo de Souza Paiva 1 Introdução Objetivo básico da computação auxiliar os seres humanos em trabalhos repetitivos e braçais, diminuindo i i d esforços e economizando

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

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

1 Funções básicas de implementação de arquivos

1 Funções básicas de implementação de arquivos 1 Funções básicas de implementação de arquivos 1.1 Definindo registros Depois de um objeto do mundo real ter sido modelado, ou seja, após seus atributos importantes (e relevantes) terem sido identificados,

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2016 Linguagem de Programação C 2 1 Linguagem de Programação C Os programas em C consistem em

Leia mais

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00 Fundamentos da Programação 32 A. Conceito Variáveis contém dados: VIII. VARIÁVEIS de entrada que o computador precisa manipular; de saída que o computador precisa imprimir; e temporários, utilizados de

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

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa Aula 12: Funções Nesta aula explicaremos o que são e como usar funções nos seus programas em JavaScript. Você aprenderá como elas podem receber e retornar valores à estrutura que as acionou. Entenderá

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

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

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

Algoritmos DCC 119. Introdução e Conceitos Básicos

Algoritmos DCC 119. Introdução e Conceitos Básicos Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação

Leia mais

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO Capítulo 2. VARIÁVEIS DO TIPO INTEIRO OBJETIVOS DO CAPÍTULO Conceitos de: variáveis do tipo inteiro, atribuição, avisos e erros de compilação, erros de execução, comentários dentro do programa-fonte Operadores

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cap1.1 ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM 1. Conceitos básicos Bit = BInary digit = vale sempre 0 ou 1 elemento básico de informação Byte Word = 8 bits processados em paralelo (ao

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 MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão 2000.1 Estas notas de aula não devem ser

Leia mais

Sua interface é semelhante a de um processador de textos do tipo WYSIWYG, ou seja, What you see is what you get (o que você vê é o que você faz).

Sua interface é semelhante a de um processador de textos do tipo WYSIWYG, ou seja, What you see is what you get (o que você vê é o que você faz). Mathcad COMANDOS BÁSICOS O software Mathcad é um ambiente de trabalho baseado em Álgebra Computacional, dirigido a profissionais técnicos, educadores e estudantes. Permite a escrita de epressões matemáticas

Leia mais

NO ESTUDO DE FUNÇÕES

NO ESTUDO DE FUNÇÕES 1 UNIVERSIDADE FEDERAL DO PARANÁ PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO À DOCÊNCIA SEMANA DA MATEMÁTICA 2014 UTILIZAÇÃO DE SOFTWARES GRÁFICOS NO ESTUDO DE FUNÇÕES PIBID MATEMÁTICA 2009 CURITIBA

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

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

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação 1I Prof. Osório Fila / Alocação Estática Pag.: 1 - UNIVERSIAE O VALE O RIO OS SINOS IÊNIAS EXATAS E TENOLÓGIAS urso: Informática / iência da omputação Programação II isciplina: Linguagem de

Leia mais

Tutorial do Interpretador de Linguagem Algorítmica (ILA)

Tutorial do Interpretador de Linguagem Algorítmica (ILA) 1 Tutorial do Interpretador de Linguagem Algorítmica (ILA) Preparado por Elvio Leonardo, a partir do tutorial fornecido com o software ILA e do material produzido pelo Prof Marcelo Azambuja I INTRODUÇÃO

Leia mais

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO (cont)

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO (cont) FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO (cont) ENTRADA E SAÍDA DE DADOS As linguagens de programação possuem uma grande variedade de comandos de entrada e saída. Os mais comuns são: As linguagens de programação

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

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms O uso da Calculadora Científica (Casio fx) fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms Prof. Ms. Renato Francisco Merli 2013 1 Sumário 1. Antes de Começar... 2 2. Cálculos Básicos... 8 3. Cálculos

Leia mais

CURSO DE INFORMÁTICA. Algoritmos. Parte 3. Ricardo José Cabeça de Souza

CURSO DE INFORMÁTICA. Algoritmos. Parte 3. Ricardo José Cabeça de Souza CURSO DE INFORMÁTICA Algoritmos Ricardo José Cabeça de Souza Parte 3 Sumário UNIDADE I - ALGORITMOS 1.6 Pseudo-Linguagem (Pseudocódigo) 1.6.1 Pseudo-Linguagem 1.6.2 Identificadores 1.6.2.1 Nomeação de

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

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

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

CURSO de CIÊNCIA DA COMPUTAÇÃO - Gabarito

CURSO de CIÊNCIA DA COMPUTAÇÃO - Gabarito UNIVERSIDADE FEDERAL FLUMINENSE TRANSFERÊNCIA 2 o semestre letivo de 2005 e 1 o semestre letivo de 2006 CURSO de CIÊNCIA DA COMPUTAÇÃO - Gabarito Verifique se este caderno contém : INSTRUÇÕES AO CANDIDATO

Leia mais

UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO. O Paradigma da Orientação a Objeto

UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO. O Paradigma da Orientação a Objeto UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO O Paradigma da Orientação a Objeto Apresentada em Cumprimento Parcial dos Requerimentos para

Leia mais

Notas de Cálculo Numérico

Notas de Cálculo Numérico Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo

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

7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS

7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS 7. ESTRUTURAS DE DADOS ESTÁTICAS E DINÂMICAS Até... 7.1 Alocação Estática Alocação de Espaço em Memória Como já foi visto anteriormente, a memória de um computador compõe-se de uma sequência de palavras,

Leia mais

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos 1. INTRODUÇÃO A ALGORITMOS O uso de algoritmos é quase tão antigo quanto a matemática. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular

Leia mais

É uma das linguagens de programação que fazem parte da Plataforma.NET (em inglês: dotnet) criada pela Microsoft (Microsoft.NET).

É uma das linguagens de programação que fazem parte da Plataforma.NET (em inglês: dotnet) criada pela Microsoft (Microsoft.NET). C ( C-Sharp ) LPI 1. A Plataforma.NET (em inglês: dotnet) Visão Geral C é uma linguagem de programação. É uma das linguagens de programação que fazem parte da Plataforma.NET (em inglês: dotnet) criada

Leia mais

5 Apresentando a linguagem C

5 Apresentando a linguagem C 5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,

Leia mais

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. Lista de exercícios: Grupo I - programa seqüênciais simples 1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. 2. Fazer um programa

Leia mais

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

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

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

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado

Leia mais

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA OBJETIVOS DO CAPÍTULO Conceitos de: variáveis de precisão simples e dupla, variáveis do tipo real simples e dupla, mistura de variáveis do tipo inteiro com real

Leia mais

Computador HIPO. Inicialmente vamos apresentar as unidades fundamentais de um computador:

Computador HIPO. Inicialmente vamos apresentar as unidades fundamentais de um computador: Computador HIPO Para introduzirmos as noções básicas de como funciona um computador, empregaremos um modelo imaginário (hipotético) que denominaremos de computador hipo. O funcionamento desse modelo tem

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados

Leia mais

Universidade Federal de São João Del Rei - UFSJ

Universidade Federal de São João Del Rei - UFSJ Universidade Federal de São João Del Rei - UFSJ Instituída pela Lei 0.45, de 9/04/00 - D.O.U. de /04/00 Pró-Reitoria de Ensino de Graduação - PROEN Disciplina: Cálculo Numérico Ano: 03 Prof: Natã Goulart

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

Organização de Computadores Software

Organização de Computadores Software Organização de Computadores Software Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Objetivos: Entender

Leia mais

Análise de Arredondamento em Ponto Flutuante

Análise de Arredondamento em Ponto Flutuante Capítulo 2 Análise de Arredondamento em Ponto Flutuante 2.1 Introdução Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto

Leia mais

PROCEDURES E FUNÇÕES PRÉ DEFINIDAS Linguagem de programação PASCAL prof. Vera Alves FUNÇÕES ARITMÉTICAS

PROCEDURES E FUNÇÕES PRÉ DEFINIDAS Linguagem de programação PASCAL prof. Vera Alves FUNÇÕES ARITMÉTICAS Profa. Vera Alves - Pg.1 PROCEDURES E FUNÇÕES PRÉ DEFINIDAS Linguagem de programação PASCAL prof. Vera Alves FUNÇÕES ARITMÉTICAS Abs Function Retorna o valor absoluto de x. Declaração: function Abs (x);

Leia mais

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes Apresentação A disciplina de Estruturas de Dados (ED) está sendo ministrada em sua nova versão desde o segundo semestre de 1998. Trata-se da segunda disciplina de informática oferecida no curso de Engenharia

Leia mais

Programa. Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP. Critérios

Programa. Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP. Critérios Programa Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP Critérios P1: 5a Aula - Peso 1 P2: 10a Aula - Peso 1.5 P3: 15a Aula- Peso 2.0 Presença e Participação: Peso 2.0

Leia mais

Representação de números em máquinas

Representação de números em máquinas Capítulo 1 Representação de números em máquinas 1.1. Sistema de numeração Um sistema de numeração é formado por uma coleção de símbolos e regras para representar conjuntos de números de maneira consistente.

Leia mais

JavaScript (ou JScript)

JavaScript (ou JScript) 1. Introdução JavaScript (ou JScript) Uma linguagem como o JavaScript permite criar interfaces interativas na web (permite a interação do usuário). Para desenvolver web sites interativos precisamos de

Leia mais

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética 2 PARADIGMA IMPERATIVO 2.1 CONCEITO As linguagens que pertencem ao paradigma imperativo tomam por base a perspectiva da máquina. Ou seja, no modo como o computador executa programas em linguagem de máquina.

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 MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão 2000.1 Estas notas de aula não devem ser

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

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes Codificação Principais códigos utilizados Computadores e Equipamentos de Comunicações Digitais trabalham com representação e códigos. A codificação binária de sinais é largamente utilizada em Sistemas

Leia mais

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

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

Algoritmos e Programação Parte Teórica

Algoritmos e Programação Parte Teórica Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte Teórica Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais. MICROSOFT WINDOWS O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais. Apresentaremos a seguir o Windows 7 (uma das versões do Windows)

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

Computadores XII: Aprendendo a Somar A4 Texto 3

Computadores XII: Aprendendo a Somar A4 Texto 3 Computadores XII: Aprendendo a Somar A4 Texto 3 http://www.bpiropo.com.br/fpc20051017.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 17/10/2005 Autor: B.Piropo Na coluna anterior, < http://www.forumpcs.com.br/viewtopic.php?t=131250

Leia mais

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis. Plano de estudo: -. - Atribuindo valores às variáveis. - Expressões Na maioria das vezes, precisamos armazenar dados para manipulá-los. Por exemplo, em um escritório de contabilidade, armazenamos os dados

Leia mais

Relatórios. Manual. Pergamum

Relatórios. Manual. Pergamum Relatórios Manual Pergamum Manual PER-MAN-005 Estatísticas Circulação de Materiais - Geral Sumário 1. APRESENTAÇÃO... 1-4 1.1 PESQUISANDO ESTATÍSITICAS E RELATÓRIOS... 1-10 1.2 UTILIZANDO O MÓDULO RELATÓRIOS...

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

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

INF 1005 Programação I lista 12

INF 1005 Programação I lista 12 INF 1005 Programação I lista 12 Caracteres e cadeias de caracteres (strings) 1. [tarefa 42] Implemente e teste uma função que receba uma string como parâmetro e modifique essa string trocando todos os

Leia mais