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

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

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

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

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

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

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

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

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

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

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

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

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

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

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

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

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

Resolução de sistemas lineares

Resolução de sistemas lineares Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)

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

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

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

UNIDADE 6 - PROGRAMAÇÃO MODULAR

UNIDADE 6 - PROGRAMAÇÃO MODULAR UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem

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

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

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

Potenciação no Conjunto dos Números Inteiros - Z

Potenciação no Conjunto dos Números Inteiros - Z Rua Oto de Alencar nº 5-9, Maracanã/RJ - tel. 04-98/4-98 Potenciação no Conjunto dos Números Inteiros - Z Podemos epressar o produto de quatro fatores iguais a.... por meio de uma potência de base e epoente

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

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

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

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

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

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

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

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

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

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

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

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

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

Lista 1 para a P2. Operações com subespaços

Lista 1 para a P2. Operações com subespaços Lista 1 para a P2 Observação 1: Estes exercícios são um complemento àqueles apresentados no livro. Eles foram elaborados com o objetivo de oferecer aos alunos exercícios de cunho mais teórico. Nós sugerimos

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

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

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

Falso: F = Low voltage: L = 0

Falso: F = Low voltage: L = 0 Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 PORTAS LOGICAS 1.1 INTRODUÇÃO Em 1854, George Boole introduziu o formalismo que até hoje se usa para

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7

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

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

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:

Leia mais

Cotagem de dimensões básicas

Cotagem de dimensões básicas Cotagem de dimensões básicas Introdução Observe as vistas ortográficas a seguir. Com toda certeza, você já sabe interpretar as formas da peça representada neste desenho. E, você já deve ser capaz de imaginar

Leia mais

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização

Leia mais

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Tipos de dados Os programas manipulam dados, armazenando-os

Leia mais

Capítulo 5: Aplicações da Derivada

Capítulo 5: Aplicações da Derivada Instituto de Ciências Exatas - Departamento de Matemática Cálculo I Profª Maria Julieta Ventura Carvalho de Araujo Capítulo 5: Aplicações da Derivada 5- Acréscimos e Diferenciais - Acréscimos Seja y f

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

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

7. Estrutura de Decisão

7. Estrutura de Decisão 7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação

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

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

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

Programação: Estruturas de seleção

Programação: Estruturas de seleção Programação de Computadores I Aula 07 Programação: Estruturas de seleção José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/53 Valores booleanos Os valores booleanos

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

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO 4 CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO CONCEITOS BÁSICOS MS-DOS MICROSOFT DISK OPERATION SYSTEM INSTALAÇÃO E CONFIGURAÇÃO DE UM SISTEMA OPERATIVO LIGAÇÕES À INTERNET O que é um sistema operativo?

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

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

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

Leia mais

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO? Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

INSTITUTO TECNOLÓGICO

INSTITUTO TECNOLÓGICO PAC - PROGRAMA DE APRIMORAMENTO DE CONTEÚDOS. ATIVIDADES DE NIVELAMENTO BÁSICO. DISCIPLINAS: MATEMÁTICA & ESTATÍSTICA. PROFº.: PROF. DR. AUSTER RUZANTE 1ª SEMANA DE ATIVIDADES DOS CURSOS DE TECNOLOGIA

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

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

Usando o do-file editor Automatizando o Stata

Usando o do-file editor Automatizando o Stata Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

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

Portal do Projeto Tempo de Ser

Portal do Projeto Tempo de Ser Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

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

Leia mais

Sessão 2 UFCD 0804 Algoritmos

Sessão 2 UFCD 0804 Algoritmos Sessão 2 UFCD 0804 Algoritmos Revisões Sessão 1 Algoritmo - Definição Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa, é uma sequência de instruções para atingir

Leia mais

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 07 1. OBJETIVO 2. BASE TEÓRICA. 2.1 Definição de Planilha Eletrônica

PRINCÍPIOS DE INFORMÁTICA PRÁTICA 07 1. OBJETIVO 2. BASE TEÓRICA. 2.1 Definição de Planilha Eletrônica PRINCÍPIOS DE INFORMÁTICA PRÁTICA 07 1. OBJETIVO Apresentar a planilha eletrônica MS-Excel e algumas de suas operações básicas, incluindo inserção de fórmulas, utilização de funções da planilha e a criação

Leia mais

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar

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

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

PROGRAMAÇÃO II 3. FILA DINÂMICA

PROGRAMAÇÃO II 3. FILA DINÂMICA 3. FILA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma fila é um tipo especial de lista na qual todas as inserções são feitas sempre depois do fim e as deleções no início. Por isso também recebe

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

Capítulo 12. SUB-ROTINAS

Capítulo 12. SUB-ROTINAS Capítulo 12. SUB-ROTINAS OBJETIVOS DO CAPÍTULO Conceitos de: sub-rotina, programa-principal, projeto com diversos programas-fonte, passagem de argumentos Comandos do FORTRAN: PROGRAM, EXTERNAL, SUBROUTINE,

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

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

A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo.

A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo. Estrutura de repetição 1 A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo. Temos duas três formas de estruturas

Leia mais

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções 1 - Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções Um programa pode possuir determinados processos realizados repetidas vezes ao longo da execução do programa. Estes processos podem se agrupar

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

COMPUTAÇÃO APLICADA. Porém, é necessário considerar que ninguém ensina ninguém a pensar, pois todas as pessoas normais tem este dom.

COMPUTAÇÃO APLICADA. Porém, é necessário considerar que ninguém ensina ninguém a pensar, pois todas as pessoas normais tem este dom. 1- LÓGICA A maioria das pessoas gostam de falar ou julgar que possuem e sabem usar o raciocínio lógico, porém, quando questionadas direta ou indiretamente, perdem essa linha de raciocínio, pois ele depende

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

Guia do Usuário. idocs Content Server v.2.0-1 -

Guia do Usuário. idocs Content Server v.2.0-1 - Guia do Usuário idocs Content Server v.2.0-1 - 2013 BBPaper_Ds - 2 - Sumário Introdução... 4 Inicializando a aplicação... 6 Ambiente... 7 Alterando o ambiente... 8 Senhas... 10 Alterando senhas... 10 Elementos

Leia mais

Manual do Usuário. Protocolo

Manual do Usuário. Protocolo Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Simulado Informática Concurso Correios - IDEAL INFO

Simulado Informática Concurso Correios - IDEAL INFO Simulado Informática Concurso Correios - IDEAL INFO Esta prova de informática é composta por 20 (vinte) questões de múltipla escolha seguindo o molde adotado pela UnB/CESPE. O tempo para a realização deste

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

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980 Questão 1. Uma venda imobiliária envolve o pagamento de 12 prestações mensais iguais a R$ 10.000,00, a primeira no ato da venda, acrescidas de uma parcela final de R$ 100.000,00, 12 meses após a venda.

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