Técnico em Informática

Lógica de Programação

Eduardo Marmo Moreira

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

São João da Boa Vista - SP 2009

Presidência da República Federativa do Brasil Ministério da Educação Secretaria de Educação a Distância

Este Caderno foi elaborado em parceria entre o Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - Campus São João da Boa Vista e o Sistema Escola Técnica Aberta do Brasil – e-Tec Brasil.
Equipe de Elaboração IFSP Coordenação Institucional Campus São João da Boa Vista Professor-autor Eduardo Marmo Moreira Comissão de Acompanhamento e Validação Gustavo Aurélio Prieto Yara Maria Guisso de Andrade Facchini Projeto Gráfico Eduardo Meneses e Fábio Brumana Diagramação Matheus Félix de Andrade”! Revisão Elizabeth Gouveia da Silva Vanni

Ficha catalográfica

Apresentação e-Tec Brasil
Amigo(a) estudante! O Ministério da Educação vem desenvolvendo Políticas e Programas para expansãoda Educação Básica e do Ensino Superior no País. Um dos caminhos encontradospara que essa expansão se efetive com maior rapidez e eficiência é a modalidade adistância. No mundo inteiro são milhões os estudantes que frequentam cursos a distância. Aqui no Brasil, são mais de 300 mil os matriculados em cursos regulares de Ensino Médio e Superior a distância, oferecidos por instituições públicas e privadas de ensino. Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB), hoje, consolidado como o maior programa nacional de formação de professores, em nível superior. Para expansão e melhoria da educação profissional e fortalecimento do Ensino Médio, o MEC está implementando o Programa Escola Técnica Aberta do Brasil (e-TecBrasil). Espera, assim, oferecer aos jovens das periferias dos grandes centros urbanose dos municípios do interior do País oportunidades para maior escolaridade, melhorescondições de inserção no mundo do trabalho e, dessa forma, com elevado potencialpara o desenvolvimento produtivo regional. O e-Tec é resultado de uma parceria entre a Secretaria de Educação Profissionale Tecnológica (SETEC), a Secretaria de Educação a Distância (SED) do Ministério daEducação, as universidades e escolas técnicas estaduais e federais. O Programa apóia a oferta de cursos técnicos de nível médio por parte das escolaspúblicas de educação profissional federais, estaduais, municipais e, por outro lado,a adequação da infra-estrutura de escolas públicas estaduais e municipais. Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de adequaçãode escolas e 74 instituições de ensino técnico, as quais propuseram 147 cursos técnicosde nível médio, abrangendo 14 áreas profissionais.

O resultado desse Edital contemplou193 escolas em 20 unidades federativas. A perspectiva do Programa é que sejam ofertadas10.000 vagas, em 250 polos, até 2010. Assim, a modalidade de Educação a Distância oferece nova interface para amais expressiva expansão da rede federal de educação tecnológica dos últimos anos: aconstrução dos novos centros federais (CEFETs), a organização dos Institutos Federaisde Educação Tecnológica (IFETs) e de seus campi. O Programa e-Tec Brasil vai sendo desenhado na construção coletiva e participaçãoativa nas ações de democratização e expansão da educação profissional no País,valendo-se dos pilares da educação a distância, sustentados pela formação continuadade professores e pela utilização dos recursos tecnológicos disponíveis. A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua formaçãoprofissional e na sua caminhada no curso a distância em que está matriculado(a). Brasília, Ministério da Educação – setembro de 2008.

Sumário
Apresentação e-Tec Brasil Sumário Outros - instituição validadora Unidade 1 - Introdução à Lógica de Programação
1.1 Lógica 1.2 Algoritmo 1.3 Programas 1.4 Linguagem Pascal 1.5 Exercícios de Fixação

3 5 8 10
10 10 11 11 11

Unidade 2 - Desenvolvimento Algoritmos
2.1 Pseudocódigos 2.2 Frases 2.3 Implementando algoritmos 2.4 Estrutura do Pseudocódigo 2.5 Constantes e Variáveis 2.5.1 Constantes 2.5.1 Variáveis 2.6 Declaração de Variáveis 2.6.1 Exemplos 2.7 Teste de Mesa 2.8 Comentários 2.8.1 Exemplos 2.9 Exercícios de Fixação

13
13 13 14 14 15 15 16 17 18 19 19 20 21

Unidade 3 - Estrutura de um Programa em Pascal
3.1 Cabeçalho do Programa 3.2 Corpo do Programa ou Bloco de Comandos 3.3 Variáveis e Constantes na linguagem Pascal 3.4 Tipos de Dados 3.4.1 Corpo do Programa ou Bloco de Comandos

22
22 23 23 24 24

3.4.2 Tipos de Dados Reais 3.4.3 Tipos de Dados Caracteres 3.4.4 Tipos Lógicos 3.5 Declaração de Variáveis 3.6 Comentários 3.7 Exercícios de Fixação

25 25 26 26 27 27 29 29 30 31 32 33 34 34 35 35 35 36 36 36 38 41 41 42 43 44 44 34 45 46 46 47 47 47 49 50

Unidade 4 - Expressões
4.1 Expressões Aritméticas 4.1.1 Exemplos 4.2 Funções de Biblioteca 4.3 Expressões Lógicas 4.3.1 Exemplos 4.4 Expressões Literais 4.5 Tipos de Expressões na Linguagem Pascal 4.6 Tipos de Operadores na Linguagem Pascal 4.6 Tipos de Operadores na Linguagem Pascal 4.6.1 Operadores Aritméticos 4.6.2 Operadores Relacionais 4.6.3 Operadores Lógicos 4.7 Funções de Biblioteca na Linguagem Pascal 4.8 Exercícios de Fixação

Unidade 5 - Comandos
5.1 Comandos de Atribuição 5.1.1 Exemplos 5.2 Comando de atribuição na Linguagem Pascal 5.3 Comando de Entrada 5.3.1 Exemplos 5.4 Comandos de Entrada na Linguagem Pascal 5.4.1 Exemplos 5.5 Comando de Saída 5.5.1 Exemplos 5.6 Comandos de Saída na Linguagem Pascal 5.6.1 Exemplos 5.7 Exercícios de Fixação

Unidade 6 - Estrutura Condicinal
6.1 Exemplos

6.2 Estrutura Condicional na Linguagem Pascal 6.2.1 Exemplo 6.3 Exercícios de Fixação

51 53 53 55 55 56 58 58 60 60 60 61 61 62 62 62 63

Unidade 7 - Estrutura de Repetição
7.1 para 7.1.1 Exemplos 7.2 Estrutura de Repetição para na Linguagem Pascal 7.2.1 Exemplos 7.3 enquanto 7.3.1 Exemplo 7.4 Estrutura de Repetição enquanto na Linguagem Pascal 7.4.1 Exemplo 7.5 faça-enquanto 7.5.1 Exemplo 7.6 Estrutura de Repetição faça-enquanto na Linguagem Pascal 7.6.1 Exemplos 7.7 Exercícios de Fixação

Outros - instituição validadora
O Decreto presidencial nº 7.566, de 23 de setembro de 1909, institucionalizou o ensino profissional no Brasil. Em 1910 surgiu a Escola de Aprendizes e Artífices de São Paulo, assemelhando-se a das criadas em outras capitais de Estado. Ela se destinava inicialmente as camadas mais desfavorecidas, aos “deserdados da fortuna e menores marginalizados”, ministrando o ensino elementar. Em 1937 passou a denominar-se Liceu Industrial de São Paulo, oferecendo ensino equivalente ao de primeiro ciclo.

Em 1942 foi promulgada a Lei orgânica do ensino industrial. A nova orientação visava à preparação profissional dos trabalhadores da indústria, dos transportes, das comunicações e da pesca.

Em 1976, procedeu-se à mudança para a nova sede e, em 1978, criaram-se os cursos de eletrônica, telecomunicações e processamento de dados. Em 1981, instalam-se os cursos complementares de mecânica, eletrotécnica e edificações, destinados à clientela, em grande parte integrada ao mercado de trabalho, mais que necessitava de uma formalização profissional por meio de disciplinas de nível técnico de 2º grau. Estes cursos técnicos tinham a duração de dois anos, prevendo um estágio obrigatório.

No ano de 1987 foi implantada a primeira Unidade de Ensino Descentralizada (UNED) no Município de Cubatão e, em 1996, ocorreu o início do funcionamento da UNED Sertãozinho. Em 1999, a Escola Técnica Federal de São Paulo, foi transformada em Centro Federal de Educação Tecnológica de São Paulo – CEFET, conforme Decreto de 18 de janeiro de 1999. No ano de 2005, foi autorizado o funcionamento da UNED Guarulhos. As UNED de São João da Boa Vista e Caraguatatuba foram autorizadas a funcionar a partir do 1º semestre do ano de 2007, enquanto que as UNED de Bragança e Salto passaram a funcionar no 2º semestre do ano de 2007.

Em 2008 foram criadas as unidades de São Carlos, São Roque e Campos do Jordão. No mesmo ano o CEFET-SP se transformou no Instituto Federal de Educação Ciência e Tecnologia pela Lei 11.892 de 29 de Dezembro de 2008, que instituiu a rede federal de educação profissional, científica e tecnológica. De acordo com esta lei os institutos federais (IF) tornaram-se instituições de educação superior, básica e profissional, pluricurriculares e multicampi, especializados na oferta de educação profissional e tecnológica nas diferentes modalidades de ensino, com base na conjugação de conhecimentos técnicos e tecnológicos com as suas práticas pedagógicas.

A expansão do CEFET-SP tem ainda previstas os Campus de Araraquara, Avaré, Barretos, Birigui, Campinas, Catanduva, Itapetininga, Piracicaba, , Presidente Epitácio, Registro, Suzano e Votuporanga.

8

Técnico em Informática

A Unidade de Ensino Descentralizada de São João da Boa Vista é uma unidade educacional subordinada ao Centro Federal de Educação Tecnológica de São Paulo, autorizada pela Portaria nº 1715 do Ministro da Educação, publicada no Diário Oficial da União de 20/10/2006. Tem estrutura administrativa definida pela resolução nº 136/06 de 16/11/2006 do Conselho Diretor do CEFET-SP.

A história do campus se inicia no ano de 1998 quando é formulado o projeto para a criação do CEPRO em São João da Boa Vista. No ano seguinte o anteprojeto é aprovado pelo Programa de Expansão da Educação Profissional (PROEP). No mesmo ano se dá o início das obras para construção do prédio em terreno doado por Paulo Roberto Merlin e Flávio Augusto Canto. Em 2004, o prédio é entregue com 2529m², sendo constituído de onze laboratórios, seis salas de aulas, um auditório com capacidade para 150 lugares, sala de multimídia e demais dependências. As atividades do Centro de Educação Profissional são iniciadas em 2005. Em 2006 é firmado o convênio entre o CEPRO e CEFET-SP, com apoio da prefeitura municipal para a federalização da unidade. Em Janeiro de 2007 o CEFET-SP / UNED SBV iniciou suas atividades no município.

O IFSP, no município de São João da Boa Vista, veio para atender a necessidade de educar os jovens são joanenses e da região, a fim de habilitá-los para o ingresso nos setores de indústria e informática, os quais demandam trabalhadores capacitados para o progresso no desenvolvimento econômico e para o fortalecimento do pólo educacional na região leste do estado.

Atuação do IFSP na Educação a Distância

No contexto da política de expansão da educação superior no país, criou-se uma direção para EaD dentro

implementada pelo

MEC, a EaD coloca-se como uma modalidade importante no seu desenvolvimento. Nesse sentido,

do IF SP.

No âmbito da política de expansão da educação profissionalizante, o Ministério da Educação,
por meio da articulação da Secretaria de Educação a Distância e Secretaria de Educação Profissional e Tecnológica, lança o Edital 01/2007/SEED/SETEC/MEC, dispondo sobre o Programa Escola Técnica Aberta do Brasil (e-Tec Brasil).

Tal iniciativa constitui-se uma das ações do Plano de Desenvolvimento da Educação.

Visando oferta de cursos da educação técnica e profissional o IF SP foi selecionado pelo programa e-Tec Brasil para iniciar suas atividades em 2009.

Tais atividades foram efetivamente implantadas em agosto de 2009 com a criação de dois cursos técnicos – a saber: técnico em informática para internet e técnico em administração – atingindo 5 municípios do estado de São Paulo (Araraquara, Barretos, Itapevi, Franca e Jaboticabal) e ampliando em 500 a oferta de vagas do Instituto.

Lógica

9

e-Tec Brasil

UNIDADE 1 - INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
Objetivos da aula
De acordo com as referências [1] e [2], este capítulo irá apresentar os conceitos básicos da lógica de programação e o histórico da linguagem Pascal, bem como alguns exercícios de fixação para assimilação dos conceitos.

1.1 Lógica
A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite determinar a sequência lógica para o desenvolvimento de sistemas. Sequência Lógica é definir um conjunto ordenado de passos para atingir um determinado objetivo. Convém ressaltar que uma ordem isolada não permite realizar todo o processo, para isso é necessário um conjunto de instruções colocadas em uma ordem lógica. Para trocar o pneu de um carro é necessário levantar o carro primeiro, antes de retirar o pneu, isto é, seguir teoricamente uma “receita de passos” para atingir um determinado objetivo.

1.2 Algoritmo
Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Estes passos não podem ser redundantes nem subjetivos na sua definição, devem ser claros e precisos. Como exemplos, é possível citar as operações fundamentais da matemática (adição, multiplicação, divisão e subtração) de números decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos que explicam passo a passo como realizar uma instalação do aparelho. Qualquer atividade pode ser descritas por sequências lógicas. Exemplo:

e-Tec Brasil

10

Técnico em Informática

“Chupar uma bala”. Pegar a bala Retirar o papel Chupar a bala Jogar o papel no lixo

1.3 Programas
Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador que seguem uma determinada sintaxe e semântica. A sintaxe da linguagem corresponde a escrever os comandos do algoritmo de acordo com as regras da linguagem. A semântica do algoritmo corresponde ao sentido dado ao programa, isto é, a lógica do algoritmo. Diante das linguagens de programação é possível citar a linguagem Pascal, C, Cobol, Fortran, Visual Basic entre outras. Estas linguagens são interpretadas e executadas por uma máquina, no caso um computador.
LINGUAGEM DE PROGRAMAÇÃO = SÍMBOLOS + REGRAS DE SINTAXE

1.4 Linguagem Pascal
A linguagem Pascal foi desenvolvida entre os anos 1968 e 1970 por Nicklaus Wirth na Universidade Técnica de Zurique, Suíça. Em 1970 foi disponibilizado o primeiro compilador para a linguagem. O Compilador é o software que realiza a tradução de todo o código-fonte, isto é, do algoritmo escrito em uma determinada linguagem de programação para as instruções correspondentes em linguagem de máquina, gerando o código-objeto do programa. Em seguida é necessário o uso de outro programa (Link-Editor que é responsável pela junção de diversos códigos-objeto em um único programa executável).

Lógica

11

e-Tec Brasil

O objetivo do desenvolvimento desta linguagem foi acadêmico, no intuito de ensinar o paradigma da programação estruturada. O nome foi em homenagem ao filósofo e matemático francês Blaise Pascal. Pela Borland foram lançadas as versões 3.0, 4.0, 5.0 e 5.5 na década de 80. Durante a década de 90 foram lançadas as versões 6.0, 7.0 e o lançamento da linguagem Delphi, para programação em ambiente Windows. O Turbo Pascal é um Ambiente Integrado de Desenvolvimento (IDE - Integrated Development Environment), desenvolvido pela Borland, consistindo de um conjunto de ferramentas de desenvolvimento integradas. Entre as ferramentas que compõem o Turbo Pascal temos: Editor de Código-Fonte, Compilador, Link-Editor e o Depurador.

1.5 Exercícios de Fixação
1) Crie uma sequência lógica para tomar banho: 2) Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número. 3) Descreva com detalhes a seqüência lógica para Trocar um pneu de um carro. 4) Faça um algoritmo para trocar uma lâmpada. Descreva com detalhes: 5) O que é lógica? 6) O que é sequência lógica? 7) O que é um algoritmo? 8) O que é um programa de computador? 9) Qual é o objetivo da linguagem Pascal? 10) O que é um compilador?

e-Tec Brasil

12

Técnico em Informática

UNIDADE 2 - DESENVOLVIDO ALGORITMOS
Objetivos da aula
De acordo com as referências [1] e [2], este capítulo irá apresentar os conceitos de Pseudocódigo, como escrever um pseudocódigo, as fases do algoritmo, as diferenças entre constantes e variáveis e os tipos de dados presentes em um algoritmo.

2.1 Pseudocódigo
Com o objetivo de aumentar o “know How” do desenvolvimento de programas, os algoritmos são descritos em uma linguagem chamada pseudocódigo, com o objetivo de separar, de maneira didática, a explicação da sintaxe e da semântica da programação. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo, JAVA, estaremos gerando código em JAVA. Por isso os algoritmos são independentes das linguagens de programação. Nesta disciplina adota-se determinadas sintaxes com o intuito de preparar o estudante na adaptação futura de linguagens que venham estudar. O algoritmo deve ser fácil de interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

2.2 Fases
Uma das maiores dificuldades do programador ou do analista em desenvolver o software é identificar os dados que o software necessita do mundo real, o que ele irá calcular diante destas informações e os resultados gerados que serão apresentados. Tendo em vista esta situação, faz-se necessário dividir o problema do mundo real em três fases fundamentais.

Lógica

13

e-Tec Brasil

Onde temos: ENTRADA: São os dados que irão ser processados pelo algoritmo PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final SAÍDA: São os dados já processados

2.3 Implementando algoritmos
Para a implementação de um algoritmo serão utilizadas algumas regras na criação do pseudocódigo, que na sequência será convertido para a linguagem pascal. Um algoritmo é composto de ordens, tomadas de decisões, processos repetitivos, entre outros, que devem seguir alguns padrões. Para inicializar o desenvolvimento do pseudocódigo, este deve sempre começar com a palavra-chave Algoritmo e terminar com a palavra-chave fimalgoritmo. Estas duas palavras-chave correspondem a estrutura da sintaxe do pseudocódigo. Palavra-chave representa o comando que desempenha uma determinada tarefa para o pseudocódigo. No pseudocódigo ele sempre será apresentado com letras minúsculas e sublinhado, com exceção do comando Algoritmo em que a primeira letra do comando, a letra “A”, é representada na forma maiúscula.

2.4 Estrutura do Pseudocódigo
Forma Geral do Algoritmo:

Algoritmo Declarações e comandos Fimalgoritmo

e-Tec Brasil

14

Técnico em Informática

Vamos analisar a construção de um algoritmo para resolver o seguinte problema: “Calcular e escrever Z = 2X + 5Y”. Como X e Y podem variar, ou seja, podem receber qualquer valor, damos o nome de variáveis e os números 2 e 5, como sempre serão 2 e 5, estes são denominados constantes.

2.5 Constantes e Variáveis 2.5.1 Constantes
São valores, pré-fixados que não sofrem alterações durante a execução do algoritmo, isto é, começam e terminam com o mesmo valor. Estes valores podem ser um número, um valor lógico (Verdadeiro ou Falso) ou uma sequência de caracteres. Assim, as constantes podem ser classificadas como: Numéricas: são números que representam grandezas; podem ser números; com ou sem parte decimal. Observe que a parte decimal deve ser separada usando os pontos decimais, que perde, aqui, sua função de separador de classes, e não a vírgula como se tem costume. O sinal deve preceder o número e caso ele não exista será considerado positivo. Se necessária a representação na forma exponencial usamos a letra E para indicar esta situação; o E vem após o número seguido do sinal do expoente e do próprio expoente NA BASE 10. São exemplos de constantes numéricas: 2.051 -4.5678 -16 0.234E+01 +3 -0.786E-03

Obs.: 0.234E+01 = 0.234x101 | -0.786E-03 = -0.786x10-3

Literais: são sequências de caracteres delimitadas por aspas duplas que têm algum significado particular no algoritmo; podemos compor um literal usando letras, números e caracteres especiais como *, @ , (e qualquer outro

Lógica

15

e-Tec Brasil

que conste na tabela ASCII); se um literal é formado apenas por números este conjunto perde o sentido natural de grandeza não podendo ser usado em operações aritméticas. São exemplos de constantes literais: “ABCDEF” “EDUARDO” “DU10” “5223766” Lógicas: representam valores lógicos e podem ter, apenas, dois valores Verdadeiro e Falso.

2.5.2 Variáveis
Variáveis são valores que sofrem alterações durante a execução do algoritmo; representam posições na memória onde são armazenados os valores que lhe são atribuídos. As variáveis simples representam uma única posição na memória; isto significa que se armazenamos outro valor na mesma posição, o valor anterior será perdido, ficando apenas o último. Estas posições são identificadas por nomes que são denominados identificadores. Identificadores são formados por caractere ou conjuntos de caracteres escolhidos por quem está escrevendo o algoritmo obedecendo alguns critérios assim convencionados: • • As letras devem ser maiúsculas O primeiro caracter deve ser letra ou _ (underline ou underscore)

• Não são aceitos caracteres especiais como @, ., /, +, etc, com exceção do underscore • Espaços em branco também não são permitidos

e-Tec Brasil

16

Técnico em Informática

• Não devemos fazer uso de palavras chaves, isto é, palavras que terão um significado próprio no algoritmo como os comandos, funções, etc. As variáveis são classificadas da seguinte forma: Numéricas: destinam-se a armazenar valores ou constantes numéricas; Literiais: armazenam conjuntos de caracteres; Lógicas: armazenam apenas dois valores Falso ou Verdadeiro. Exemplos de identificadores válidos: NOME ENDERECO SAL Não seriam aceitos os identificadores: 1MATRIC NR.FILHOS SAL/BRUTO

2.6 Declaração de Variáveis
Só podemos armazenar valores nas variáveis quando já existe um espaço na memória reservado para elas. Esta criação é feita identificando o nome e o tipo de cada uma através do comando declare, onde a sintaxe que se apresenta no pseudocódigo é mostrada diante da forma geral: declare lista de variáveis tipo

Lógica

17

e-Tec Brasil

declare: é um comando que reserva espaço na memória para as variáveis; lista de variáveis: compreende os identificadores dados às variáveis, isto é, os nomes fornecidos para as variáveis, separadas por vírgulas caso tenha mais de uma variável do mesmo tipo; tipo: é um dos tipos definidos (numérico, lógico ou literal);

Exemplo:

declare

X, Y, Z NOME, CIDADE RESPOSTA

numérico literal lógico

Com esta declaração estamos estabelecendo que: X, Y, Z só podem armazenar valores numéricos; NOME e CIDADE armazenam literais, isto é seqüência de caracteres que não representam grandezas matemáticas; mesmo que contenham apenas números, a princípio, não poderão ser usadas em cálculos matemáticos. ESPOSTA deverá armazenar apenas um dos dois valores lógicos, Verdadeiro ou Falso. Qualquer tentativa de armazenamento de tipos não compatíveis ocasionará um erro, erro de incompatibilidade de tipos.

2.6.1

Exemplos

1) Declare as variáveis necessárias para calcular e escrever a soma de dois números. Algoritmo

e-Tec Brasil

18

Técnico em Informática

declare fimalgoritmo

NUM1, NUM2, SOMA numérico

2) Declare as variáveis necessárias para construir um algoritmo que leia o nome e as quatro notas bimestrais de um aluno. Calcule e escreva a média aritmética das notas.

Algoritmo declare fimalgoritmo

NOME N1, N2, N3, N4, MEDIA

literal numérico

2.7 Teste de mesa
Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de “Teste de Mesa”, que significa, seguir os passos do algoritmo, linha por linha, marcando as mudanças que acontecem nas variáveis do algoritmo diante dos cálculos presentes nas linhas de código, realizando em si, um debug do algoritmo ou uma simulação do programa.

2.8 Comentários
É possível deixar o código fonte mais claro fazendo uso dos chamados comentários. Comentários são textos ou frases delimitados por chaves que tornam os algoritmos mais claros. Podem ser usadas em qualquer lugar do algoritmo, quantas vezes necessárias. Um comentário não será identificado pelo algoritmo, ou seja, o algoritmo no momento da compilação irá ignorar a marcação do início ao fim do comentário, tendo em vista que o comentário tem como fundamento apenas levar um tipo de esclarecimento ao programador. Forma geral { o texto que você deseja acrescentar }

Lógica

19

e-Tec Brasil

Refazendo o exemplo 1 teríamos:

Algoritmo declare

NUM1, { primeiro número a ser somado } NUM2, { segundo número a ser somado } S { soma dos dois números } numérico { ler os números } { calcular sua soma } { escrever a soma } fimalgoritmo

2.8.1

Exemplos

1) Leia o nome e o salário de um funcionário. Escreva seu nome somente se seu salário for maior que R$ 2.500,00. Algoritmo declare NOME literal { nome do funcionário} SAL numérico { salário } { resolver o problema } fimalgoritmo 2) Calcular e escrever o juro obtido na aplicação de um capital aplicado a certa taxa por um determinado tempo.

Algoritmo { cálculo de juros } { declaração das variáveis } declare C, { capital } I, { taxa } T, { tempo } JJ { juro } numérico { ler os valores, calcular e escrever o juro } fimalgoritmo

e-Tec Brasil

20

Técnico em Informática

2.9 Exercícios de Fixação
1) O cálculo da média final dos alunos depois de 4 provas realizadas é apresentada da seguinte forma: 2) Identifique os dados de entrada, processamento e saída no algoritmo abaixo: 3) Identifique as variáveis dentro de um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2: 4) O que é uma constante? Dê um exemplo. 5) O que é uma variável simples? Dê um exemplo. 6) O que é pseudocódigo? 7) Qual é a importância do teste de mesa em um algoritmo?

Lógica

21

e-Tec Brasil

UNIDADE 3 - ESTRUTURA DE UM PROGRAMA EM PASCAL
Objetivos da aula
De acordo com as referências [1] e [2], este capítulo irá apresentar as fases do algoritmo escrito na linguagem Pascal, o comando var, similar ao comando declare do pseudocódigo e os tipos de dados presentes na linguagem Pascal.

3 Estrutura de um programa em Pascal
Todo programa escrito em Pascal é subdividido em três partes: cabeçalho do programa, área de declarações e corpo do programa ou bloco de comandos.

3.1 Cabeçalho do Programa
O cabeçalho é utilizado para fazer a identificação do programa. O cabeçalho de um programa é atribuído pelo comando program seguida de um nome. O program é similar ao Algoritmo no pseudocódigo e o nome que vem em seguida representa apenas um nome definido para o programa. Ao final da linha de código, no pascal, deve-se colocar o ponto-e-vírgula ( ; ). O ponto-e-vírgula é um símbolo que representa o final da linha de código, símbolo este que não tem nenhuma representação no pseudocódigo. Não pode existir nenhuma variável no programa que tenha o mesmo nome dado ao programa. Exemplo: program MEDIA;

e-Tec Brasil

22

Técnico em Informática

De acordo com o exemplo acima, caso declare uma variável com o nome MEDIA, por já ter definido este nome como o nome do programa, provavelmente, ocorrerá um erro na compilação.

3.2. Corpo do Programa ou Bloco de Comandos
O Corpo do Programa corresponde ao Bloco de Comandos e é a área onde serão escritos os passos referentes ao processamento do algoritmo. O comando begin indica o início do Bloco de Comandos e o comando end que utiliza o ponto final após a letra “d” é similar ao fimalgoritmo do pseudocódigo, isto é, indica o término do código fonte. begin instruções; ... end. Na área denominada instruções, poderão existir, dependendo da necessidade, vários blocos de comandos , o que será visto em detalhes a frente.

3.3. Variáveis e Constantes na linguagem Pascal
No Pascal, diferente do pseudocódigo, não existe distinção entre letras maiúsculas e minúsculas no nome de um identificador. Um identificador deverá ficar inteiramente contido em uma linha do programa. O Pascal reconhece certo grupo de palavras como sendo reservadas. Essas palavras tem significado especial e não podem ser usadas como identificadores em um programa. A tabela abaixo apresenta todas as palavras reservadas do Pascal:

Lógica

23

e-Tec Brasil

Palavras Reservadas do Pascal
and Array asm begin case const constructor destructor div do downto else end file for foward function goto if Implementation in inline interface label mod nil not object of Or packed procedure program record repeat set shl shr string Then to type unit until uses var while with xor

3.4. Tipos de Dados
Os dados são representados pelas informações a serem processadas por um computador. Um tipo de dados especifica as características, isto é, os valores e operações possíveis de serem utilizados com um dado desse tipo. Toda variável e constante usada em um programa tem um tipo associado a ela. A linguagem Pascal fornece ao programador um conjunto de tipos de dados predefinidos.

3.4.1. Tipos de Dados Inteiros
São caracterizados tipos inteiros, os dados numéricos positivos ou negativos, excluindo-se qualquer número fracionário. Em Pascal, este tipo de dado pode ser referenciado por um dos seguintes identificadores:
Tipo de Dados Inteiros
Tipo de dado inteiro shortint integer longint byte word Faixa de abrangência de –128 até 127 de –32.768 a 32.767 de –2.147.483.648 a 2.147.483.647 de 0 até 255 de 0 até 65535 1 byte 2 byte 4 byte 1 byte 2 byte Tamanho(bytes)

e-Tec Brasil

24

Técnico em Informática

Exemplo: var Cont_FUNC : integer;

3.4.2. Tipos de Dados Reais
O tipo de dado real permite trabalhar com números fracionários, tanto positivos como negativos, sendo sua capacidade de armazenamento maior que dos números inteiros. A tabela abaixo representa os tipos de dados reais:
Tipos de Dados Reais
Tipo de dado real real single double extended comp Faixa de abrangência de 2.9 e-39 até 1.7 e38 de 1.5 e-45 até 3.4 e38 de 5.0 e-324 até 1.7e308 de 3.4 e-4.932 até 1.1 e4.932 de –9.2 e18 até 9.2 e18 6 bytes 4 bytes 8 bytes 10 bytes 8 bytes Tamanho(bytes)

Exemplo: var N1, N2, N3, N4, Media : real;

3.4.3. Tipos de Dados Caracteres
São considerados tipos caracteres, as sequências contendo letras, números e símbolos especiais. Uma sequência de caracteres, em Pascal, deve ser representada entre apóstrofos (‘’). Este tipo de dado é referenciado pelo identificador string, podendo armazenar de 1 até 255 caracteres. Podemos ainda especificar um tamanho menor do que os 255 caracteres permitidos. Vejamos a sintaxe para criarmos uma variável do tipo string com tamanho limitado. Forma Geral: variável : string[tamanho]; Exemplo:

Lógica

25

e-Tec Brasil

var Frase: string; Nome: string[45]; Existe ainda o tipo char, utilizado da mesma forma que o tipo string, porém com uma pequena diferença: é usado para strings de apenas um caracter. Segue um exemplo do tipo de dado char:

var Sexo : char; No caso acima a variável Sexo irá receber apenas um caracter, no caso “M” ou “F”.

3.4.4. Tipos Lógicos
São caracterizados tipos lógicos, os dados com valores true (verdadeiro) e false (falso). Este tipo de dado também e chamado de tipo boleano. Ele é representado pelo tipo boolean. Exemplo:

var Aprovado: boolean; Confirma: boolean;

3.5. Declarações de variáveis
O comando var é utilizado na declaração das variáveis e é similar ao comando declare no pseudocódigo. Desta forma, a linguagem Pascal efetua a reserva de espaço na memória para que as variáveis sejam utilizadas. Após os identificadores de cada variável deverá ser utilizado o símbolo doispontos ( : ), e após estes é mencionado o tipo de dado que a variável irá receber, seguido de ponto-e-vírgula.

26

Técnico em Informática

Exemplo: var NOME : string; IDADE : integer; ALTURA : real; begin instruções; ... end. Caso as variáveis sejam de mesmo tipo, estas poderão ser relacionadas separadas por vírgula. Segue o exemplo: A, B, C: integer;

3.6. Comentários
Na linguagem Pascal é possível colocar comentários de duas formas: entre chaves “{...}” ou entre “ (* ... *)”. Quando o compilador encontra o símbolo “{“ ele salta todos os caracteres até encontrar um “}”. Da mesma forma, todos os caracteres que seguem “(*” são pulados até ser detectado o símbolo ”*)”. Como resultado disso, qualquer uma das formas pode ficar dentro da outra; por exemplo {...(*...*)...} é um comentário.

3.7. Exercícios de Fixação
1) Identifique, na sintaxe da linguagem Pascal, as variáveis para calcular a média das notas de um aluno que realizou 4 provas. 2) Identifique, na sintaxe da linguagem Pascal, as variáveis que leia o nome e o salário de um funcionário. 3) Identifique, na sintaxe da linguagem Pascal, as variáveis utilizadas para calcular e escrever o juro obtido na aplicação de um capital aplicado a certa taxa por um determinado tempo. 4) Identifique as variáveis dentro de um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2:

Lógica

27

e-Tec Brasil

5) Identifique, na sintaxe da linguagem Pascal, as variáveis para resolver uma equação do 2º grau.

28

Técnico em Informática

UNIDADE 4 - EXPRESSÕES

Objetivos da aula
De acordo com as referências [1], [2] e [4], neste capítulo serão apresentadas as expressões aritméticas, lógicas e literais dos pseudocódigos e da linguagem pascal responsáveis pelos cálculos que são efetuados durante a fase de processamento do algoritmo, todavia os exercícios relacionados a linguagem Pascal só serão cobrados no próximo capítulo.

4. Expressões
Expressão é qualquer combinação de uma ou mais constantes e ou variáveis (operandos) com um ou mais operadores. As constantes e ou variáveis podem ser de qualquer tipo (numérico, lógico ou literal), mas deve obedecer a compatibilidade, isto é, em uma única expressão não podemos variar o tipo. Assim as expressões podem ser numéricas, literais e lógicas, como também os operadores. Operadores são símbolos ou sinais que indicam uma operação.

4.1. Expressões aritméticas
São expressões cujos operadores são numéricos e cujos operandos são constantes e ou variáveis numéricas. Os operadores aritméticos são as operações conhecidas da Matemática:
Operadores Aritméticos
Operação Aritmética Potenciação Produto Divisão Soma Subtração Símbolo

^ * / + -

Lógica

29

e-Tec Brasil

Na elaboração de expressões aritméticas, algumas regras básicas devem ser seguidas: • Não se subentende produto. Enquanto na Matemática escrevemos 2X para representarmos o dobro de um número, na linguagem algorítmica devemos escrever 2*X. • o o o A hierarquia das operações é a mesma da Matemática: 1º potenciação ou radiciação 2º produto e divisão 3º soma e subtração

• As chaves e colchetes são substituídas pelos parênteses, sendo assim os únicos sinais de agrupamento, tendo a possibilidade de alterar a hierarquia das operações. • Se existirem operadores de mesma ordem de precedência, a avaliação será feita da esquerda para a direita.

4.1.1. Exemplos

e-Tec Brasil

30

Técnico em Informática

4.2. Funções de Biblioteca
É possível também fazer uso de funções matemáticas no intuito de otimizar a implementação do algoritmo na elaboração de expressões aritméticas. Provavelmente, em uma linguagem de programação, essas funções estarão implementadas em bibliotecas. As funções são sempre acompanhadas do parâmetro ou argumento, que deve vir entre parênteses. Na lista em seguida, usamos o parâmetro P1 e P2 para significar uma Expressão Aritmética, que pode ser uma expressão, uma constante ou uma variável.
Função LOG(P1) LN(P1) EXP(P1) ABS(P1) TRUNCA(P1) ARREDONDA(P1) SINAL(P1) QUOCIENTE(P1,P2) RESTO(P1,P2) SEN(P1) COS(P1) TAN(P1) RAIZ(P1) LOG. DE BASE 10 LOG. NEPERIANO EXPONENCIAL VALOR ABSOLUTO PARTE INTEIRA DE UM NÚMERO, SEM ARREDONDAMENTO ARREDONDA SEGUINDO O PADRÃO: >=5 AUMENTA; <5 CONSERVA -1 SE P1<0; 0 SE P1=0; 0 SE P1=0 QUOCIENTE DA DIVISÃO INTEIRA DE P1 POR P2 RESTO DA DIVISÃO INTEIRA DE P1 POR P2 SENO DE UM ÂNGULO EM RADIANOS CO-SENO DE UM ÂNGULO EM RAD. TANGENTE DE UM ÂNGULO EM RAD. RAIZ QUADRADA DE P1 SENDO P1>=0 Símbolo LOG(1) = 0 LN(2) = 0.693147 EXP(0) = 1 ABS(-10) = 10 TRUNCA(2.56) = 2; TRUNCA(2.01) = 2; TRUNCA(2) = 2 ARREDONDA(2.56) = 3; ARREDONDA(2.43) = 2 SINAL(-2) = -1; SINAL(2) = 1; SINAL(0) =0 QUOCIENTE(10,2)=5; QUOCIENTE(10,3)=3 RESTO(10,2) = 0; RESTO(22,3) = 1; RESTO(99,10) = 9 SEN(0) = 0 COS(0) = 1 TAN(0)=0 RAIZ(4) = 2 Exemplo

Lógica

31

e-Tec Brasil

4.3. Expressões lógicas
São expressões cujos operadores são lógicos e cujos operandos são relações e ou variáveis do tipo lógico.
Relações Igual Diferente Menor que Maior que Menor ou igual que Maior ou igual que Simbologia

= <> < > <= >=

Além das relações fazemos uso, também, dos operadores lógicos. São eles:
Operadores e ou não Significado Conjunção Disjunção Negação

Os operadores lógicos e/ou relações só podem ser usados com constantes e/ou variáveis do tipo lógico, isto é, que só representam dois valores: Verdadeiro (V) ou Falso (F) e cujo resultado podemos observar nas TabelasVerdade em seguida:
A ou B = C A V V F F B V F V F AeB=C A V V F F B V F V F C V F F F C V V V F

e-Tec Brasil

32

Técnico em Informática

não (A) = C A V V F F B V F V F

Nas expressões, os operadores lógicos seguem a seguinte Preferência: 1) 2) 3) não e ou

que podem ser modificadas pelo uso de parênteses. Aquilo que estiver dentro do parêntese sempre deve ser resolvido primeiro.

4.3.1.

Exemplos

1) (A > B) e (X < Y) No exemplo acima, caso a variável A tenha armazenado um valor maior que o valor contido na variável B e o valor armazenado em X for menor que o valor em Y, o resultado desta expressão será Verdadeiro.

2) (A=”Verdadeiro”) e não (B) Diante do segundo exemplo, o resultado dependerá do valor contido em B, caso seja Verdadeiro a expressão resultará em Falso e caso Verdadeiro, o resultado será Verdadeiro.

3) (A=B) ou não (B e C)

Lógica

33

e-Tec Brasil

Sendo A e C Verdadeiro e B Falso, resolvem-se primeiramente as relações, isto é, verifica se A é igual a B, resultando em Falso e em seguida, resolvese a operação agrupada pelo parêntese. B e C é igual a Falso, como o não de Falso é Verdadeiro e toda operação lógica de disjunção que tenha um valor Verdadeiro permanece o valor Verdadeiro, o resultado da expressão é Verdadeiro.

4) (RAIZ(X-Y)>Z) e (QUOCIENTE(X)=0) Para resolver este último exemplo, verifica-se os valores das variáveis X, Y e Z e resolva as funções de bilbioteca. Após obter os valores das funções, compare-as utilizando as relações e finalmente aplique o operador de conjunção diante dos resultados.

4.4. Expressões Literais
Formadas por operadores literais e ou operandos do tipo literal. Os operadores dependem das características de cada linguagem. Uma operação muito utilizada é a concatenação de caracteres. Estas expressões não serão trabalhadas no pseudocódigo.

4.5. Tipos de Expressões na linguagem Pascal
Conforme visto no pseudocódigo, na linguagem Pascal também existem três tipos básicos de expressões: Numéricas: uma expressão é numérica quando os seus operandos e resultados são numéricos (inteiros ou reais). Literais: Uma expressão é literal quando os seus operandos e o resultado são literais do tipo string, não podendo ser char. Só existe um único operador para se usar em expressões literais, o operador Concatenação( + ).

e-Tec Brasil

34

Técnico em Informática

Boolenas: Uma expressão é booleana quando seu resultado é do tipo boolean (TRUE ou FALSE), podendo seu operando serem de qualquer tipo de dados. Nas expressões relacionais são usados os operadores Lógicos e os Relacionais. As expressões booleanas são similares as expressões lógicas do pseudocódigo.

4.6. Tipos de Operadores na Linguagem Pascal
Existem vários operadores para a realização de expressões na linguagem Pascal.

4.6.1. Operadores Aritméticos
A tabela a seguir apresenta os símbolos que representam os operadores aritméticos na linguagem Pascal.

Operadores Aritméticos
Operação Aritmética Adição Subtração Multiplicação Divisão Real Divisão Inteira ( truncada ) Resto da Divisão Inteira Inverte Sinal Mantém Sinal Símbolo

+ * / DIV MOD +

4.6.2. Operador de Concatenação
O operador de concatenação é representado pelo mesmo símbolo da adição “+” e está vinculado as expressões literais efetuando a junção de duas variáveis ou constantes do tipo string. Exemplo:

Lógica

35

e-Tec Brasil

Nome = “Eduardo” + “ Marmo” Nome = “Eduardo Marmo”

4.6.3. Operadores Relacionais
Os operadores relacionais são utilizados para efetuar a comparação entre dados de mesmo tipo e o seu resultado corresponde a valores boleanos similar as expressões lógicas do pseudocódigo. Os operadores relacionais existentes em Pascal podem ser vistos logo em seguida.
Função pi length( x ) concat( x1, x2, x3,...) Ofício Retorna o valor de PI (3.1415...) Determina o número de caracteres de x Concatena duas ou mais strings (máx 255 caracteres) Retorna uma subcadeia da cadeia x, com z caracteres, começando no caracter y Retorna x convertido para maiúscula Trunca x para um número inteiro string string Tipo do Argumento Resultado da Função real inteiro string

copy( x, y, z )

string, inteiro, inteiro

string

UpCase( x ) trunc( x )

char real

char inteiro

4.6.4. Operadores Lógicos
Os operadores Lógicos na linguagem Pascal são apresentadas logo em seguida:
Operador no Pseudocódigo E ou não and or not Operador no Pascal

4.7. Funções de Biblioteca na Linguagem Pascal
A linguagem Pascal apresenta um conjunto de funções similares as funções de bibliotecas presentes no pseudocódigo. Segue algumas funções:

e-Tec Brasil

36

Técnico em Informática

Função int( x ) frac( x ) round( x ) chr( x ) sizeof( x ) gotoxy(x,y)

Ofício Retorna a parte inteira de x Retorna a parte fracionária de x Arredonda x para um inteiro Determina o caracter ASCII representado por x Retorna o número de byte de x Move o curso para a coluna x e linha y Calcula e^x, em que e=2.7182818 é sistema natural de log neperiano Calcula o log natural de x (x>0) Retorna x elevado a y Calcula o seno de x em radianos Calcula o quadrado de x Calcula a raiz quadrada de x (x>=0) Determina se x é par ou impar TRUE, X é par / FALSE, X é impar Retorna um número pseudoaleatório entre 0 e x. Se x não for especificado retorna um valor entre 0.0 e 1.0 Calcula o valor absoluto de x Calcula o co-seno de x em radianos Retorna o valor de PI (3.1415...) Determina o número de caracteres de x Concatena duas ou mais strings (máx 255 caracteres) Retorna uma subcadeia da cadeia x, com z caracteres, começando no caracter y Retorna x convertido para maiúscula Trunca x para um número inteiro

Tipo do Argumento real real real inteiro qualquer tipo inteiro

Resultado da Função real real inteiro char inteiro

exp( x ) ln( x ) exp(ln(x)*y) sin( x ) sqr( x ) sqrt( x ) odd( x )

inteiro ou real inteiro ou real inteiro ou real inteiro ou real inteiro ou real inteiro ou real inteiro

real real real real x real boolean

random( x )

inteiro

real

abs( x ) cos( x ) pi length( x ) concat( x1, x2, x3,...)

inteiro ou real inteiro ou real string string

x real real inteiro string

copy( x, y, z )

string, inteiro, inteiro

string

UpCase( x ) trunc( x )

char real

char inteiro

Lógica

37

e-Tec Brasil

4.8. Exercícios de Fixação
1) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas.
SALARIO 100,00 200,00 300,00 0,00 10,00 15,00 IR 100 190,00 285,00 SALLIQ EXPRESSÃO (SALLIQ >= 100,00) (SALLIQ < 190,00) SALLIQ = SALARIO - IR V ou F V F V

2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. a) (A+C) > B b) B >= (A + 2) c) C = (B –A) d) (B + A) <= C e) (C+A) > B

3) Sabendo que A=5, B=4, C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas. a) (A > C) e (C <= D) b) ((A+B) > 10) ou ((A+B) = (C+D)) c) (A>=C) e (D >= C)

4) Converte as seguintes expressões algorítmicas para expressões aritméticas:

e-Tec Brasil

38

Técnico em Informática

a) (ABS(34.16)+TRUNCA(23.333)) ^2 b) (ARREDONDA(34.49)-ARREDONDA(27.77))/RAIZ(33^(1/2)) c) Z+8*X-35/K 5) Sendo p,q,r e s variáveis do tipo numérico,cujos conteúdos são iguais a 2,3,12 e 4.8 respectivamente, quais os valores fornecidos por cada expressão aritmética abaixo: 1) 100*QUOCIENTE(q,p)+r

2) p+ARRENDONDA(2.9)+TRUNCA(0.3)*s

3) x=20 y=4 z=18 K=22 RAIZ(x-y)>z e QUOCIENTE(10,5)<K

6) Solucione as expressões lógicas abaixo: 1)

Lógica

39

e-Tec Brasil

não(5<>(10/2)) ou V e ((2-5) >(5 -2)) ou V

2) V e V ou F e V ou F e V ou V

e-Tec Brasil

40

Técnico em Informática

UNIDADE 5 - COMANDOS

Objetivos da aula
De acordo com as referências [1] e [2], neste capítulo serão apresentados todos os comandos presentes no pseudocódgio e na linguagem Pascal, para que o programa desenvolvido possa realizar as tarefas que o programador determina.

5.1. Comando de atribuição
O comando de atribuição permite o armazenamento de um valor a uma variável, desde que haja compatibilidade de tipos. Isto significa que nunca será permitido atribuir, por exemplo, uma constante literal a uma variável que tenha sido declarada do tipo numérico. É uma maneira de armazenarmos dados na memória do computador. Forma geral: variável <- variável, constante ou expressão Visualmente, sabemos que o comando declare abra posições na memória. Assim o comando: declare N1, N2, N3 numérico NOME literal APROVADO lógico Resultado: N1 N2 N3 NOME APROVADO

Os espaços estão criados na memória para o recebimento de valores. Diante desta área reservada, segue:

Lógica

41

e-Tec Brasil

N1 9 N2 8 N3 7 NOME “Eduardo” Aprovado Verdadeiro As variáveis passariam a armazenar os valores: N1 N2 N3 NOME APROVADO
Verdadeiro

9

8

7

Eduardo

Como as variáveis correspondem a variáveis simples, isto é, que cada posição na memória corresponde a um único valor, se, em seguida, fossem fornecidos os seguintes comandos de atribuição: N1 0 N2 0 APROVADO

Falso

E não alterássemos os outros, o valor de N1 = 9 seria perdido e lá só estaria armazenado o 0; o mesmo acontece com N2 e APROVADO que mudaria de Verdadeiro para Falso. N1 N2 N3 NOME APROVADO

0

0

7

Eduardo

Falso

Se tentássemos armazenar “Falso” na variável N1 ocorreria um erro, pois N1 foi declarada do tipo numérico e “Falso” é uma constante literal ou lógica caso seja representada sem as aspas.

5.1.1. Exemplo
Considerando o algoritmo abaixo.

e-Tec Brasil

42

Técnico em Informática

Algoritmo declare

X, Y, Z numérico A, B, C literal L, M lógico

X <- 23.45 A <- “TESTE” L <- Falso M <- Verdadeiro Y <- X + 2 Z <- X + Y M <- (L ou (Y > X)) C <- “BEM” B <- A B <- “A” X <- Z fimalgoritmo Observa-se que na compilação deste algoritmo as variáveis X, Y, Z, A, B, C, L e M, representarão respectivamente 48.90 , 25.45 , 48.90 , “TESTE” , “A” , “BEM”, Falso e Verdadeiro. No exemplo anterior não seriam válidas as atribuições: X <- A B <- Falso L <- “verdadeiro” E muitas outras onde os tipos não fossem compatíveis.

5.2. Comando de atribuição na linguagem Pascal
Na linguagem Pascal o comando representado pelo símbolo (seta), é representada pelos símbolos em conjunto := (dois pontos e igual) conforme exemplo abaixo, não esquecendo do ponto e vírgula para finalizar a linha de comando.

Lógica

43

e-Tec Brasil

Forma Geral: Variável := variável, constante ou expressão; Ex.: N1 := 10; Aprovado := true;

5.3. Comandos de Entrada
O Comando de Entrada permite a introdução de dados na memória do computador, através de um dispositivo de entrada, como o teclado, isto é, o usuário poderá armazenar informações as variáveis reservadas na memória. Forma geral: leia lista de variáveis separadas por vírgulas Onde leia é uma palavra-chave e lista de variáveis deve conter as variáveis citadas no declare.

5.3.1. Exemplos
1) Dados dois números quaisquer faça um algoritmo que calcule a sua soma. Algoritmo declare A, B, { dois números quaisquer } SOMA { SOMA dos dois números } numérico leia A, B SOMA A+B { Escreva a resposta } fimalgoritmo No algoritmo apresentado acima, ao compilar o comando leia, o computador irá aguardar o usuário fornecer valores para A e B e logo em seguida, após o usuário apertar enter duas vezes (uma para cada variável), irá continuar a compilação.

e-Tec Brasil

44

Técnico em Informática

2) Faça um algoritmo que leia o nome, idade, e salário de um funcionário. Calcule seu novo salário com um acréscimo de 20%. Algoritmo declare NOME literal IDADE, SAL, NOVO numérico leia NOME, IDADE, SAL NOVO <- SAL + 20/100 * SAL { escreva novo salário } fimalgoritmo

5.4. Comando de Entrada na linguagem Pascal
O comando de entrada na linguagem Pascal é representada pelas palavras readln e read, sendo similares ao comando leia no pseudocódigo. As diferenças dos dois comandos estão presentes no fato de ao colocar o comando readln, quando o compilador disponibilizar o cursor para o usuário, ele saltará uma linha.

5.4.1. Exemplo
program NovoSalario; var nome:string; idade:integer; sal, novo:real; begin readln(nome); readln(idade); readln(sal); novo:=sal + 20/100 * sal; end.

Lógica

45

e-Tec Brasil

5.5. Comando de Saída
Como o objetivo do algoritmo é estabelecer regras e descrever passos que levem à solução de um problema, faz-se necessário um comando que permita a saída dos resultados obtidos na solução deste. O comando de Saída permite a visualização dos dados das variáveis ou a demonstração de qualquer valor. Forma geral escreva lista de variáveis e ou constantes Onde: escreva é uma palavra-chave que corresponde ao comando de Saída.

5.5.1 Exemplo
1) Faça um algoritmo que calcule e escreva a média aritmética de duas notas de um aluno. Algoritmo { Cálculo de média } declare N1, N2, { duas notas} M {média} numérico { Leitura de dados } leia N1, N2 M <- ( N1+N2 ) / 2 { Saída do resultado } escreva M fimalgoritmo

e-Tec Brasil

46

Técnico em Informática

5.6. Comando de Saída na linguagem Pascal
O comando de saída na linguagem Pascal é representado pelas palavras writeln e write, sendo similares ao comando escreva no pseudocódigo. As diferenças dos dois comandos são semelhantes as diferenças dos comandos readln e read respectivamente.

5.6.1. Exemplo
program NovoSalario; var nome:string; idade:integer; sal, novo:real; begin write(‘Digite o seu nome:’); readln(nome); write(‘Digite a sua idade:’); readln(idade); write(‘Digite o seu salário:’); readln(sal); novo:=sal + 20/100 * sal; writeln(‘Novo salário:’,novo); end.

5.7. Exercícios de Fixação
1) Escreva um pseudocódigo que calcule a média aritmética de dois números: 2) Faça um pseudocódigo que calcule e escreva a média das 4 notas bimestrais de um aluno. Escreva também o seu nome. 3) Faça um algoritmo em Pascal que tenha 3 variáveis, Nome1, SobreNome e NomeCompleto e que a variável NomeCompleto concatene os valores de Nome1 e SobreNome.

Lógica

47

e-Tec Brasil

4) Identifique erros no código em Pascal abaixo:

var A, B : integer; C, D : real; begin A := 1; B := 3; C := 5; D := 10; A := 1 + B; A := B + D; B := 10 div 3; A := 10 mod 3; C := D / C; D := 10 div C; A := -1; B := 5 + A; B := -A; C := D * A; B := C * B; end.

e-Tec Brasil

48

Técnico em Informática

UNIDADE 6 - ESTRUTURA CONDICIONAL
Objetivos da aula
De acordo com as referências [1] e [2], neste capítulo será apresentada a estrutura condicional no pseudocódigo e como sua sintaxe é apresentada na linguagem Pascal.

6 Estrutura condicional
A Estrutura condicional ou estrutura de decisão permite oferecer vários caminhos para o programa no intuito de resolver problemas, isto é, em situações onde a tomada de atitude é fator determinante, é necessária o uso da estrutura condicional. Estrutura condicional permite a escolha do comando ou grupo de comandos a ser executado quando determinadas condições são satisfeitas. A forma geral abaixo apresenta a sintaxe da estrutura condicional no pseudocódigo: Forma geral:

se condição então { comando ou bloco de comandos } senão { comando ou bloco de comandos } fimse Onde se, então, senão e fimse são palavras-chave que correspondem aos comandos da estrutura condicional. Condição é uma expressão lógica.

Lógica

49

e-Tec Brasil

A cada comando se corresponde um único então, um único senão e um único fimse. Vale destacar que o comando senão não é obrigatório, quando utiliza-se o comando senão, a estrutura condicional é caracterizada como estrutura condicional composta em contrapartida estrutura condicional simples.

6.1. Exemplos
1) Faça um pseudocódigo que leia dois números e escreva-os em ordem crescente.

Algoritmo declare A, B numérico leia A, B se B>A então escreva A, B senão se A>B então escreva B, A senão escreva “São iguais” fimse fimse fimalgoritmo

2) O Banco Expresso resolveu emitir uma mensagem de cobrança para os seus clientes em débito e dar uma bonificação de 5% sobre o saldo para aqueles que tiverem saldo superior ou igual a R$ 15.000,00. Para isto foi fornecido o nome do cliente, o número de sua conta e o seu saldo. Escreva um pseudocódigo que escreva o nome, valor da bonificação e saldo total do cliente ou escreva a mensagem para os devedores.

Algoritmo declare NO, {nome do cliente} NC {número da conta} literal SALDO, BONI {bonificação}, SALT {saldo final} numérico leia NO, NC, SALDO se SALDO >= 15000 então BONI SALDO*5/100 SALT SALDO+BONI

e-Tec Brasil

50

Técnico em Informática

escreva “Cliente:”, NO, “Bonificação:”, BONI escreva “Saldo Final:”, SALT senão escreva “Atenção! Acerte seu débito” fimse fimalgoritmo

3) Escreva um pseudocódigo que resolva uma equação do 2º grau.

Algoritmo declare A, B, C, D, R1, R2 numérico leia A, B, C se A<>0 então D B^2-4*A*C se D>0 então R1 -B-RAIZ(D)/(2*A) R2 -B+RAIZ(D)/(2*A) escreva R1, R2 senão se D = 0 então R1 -B/(2*A) escreva R1 senão escreva “não tem raiz real” fimse fimse senão escreva “A equação não é do 2º grau” fimse fimalgoritmo

6.2. Estrutura condicional na linguagem Pascal
Os comandos if, then e else da linguagem Pascal são similares aos comandos se, então e senão do pseudocódigo e estes comandos têm por finalidade tomar uma decisão e efetuar um desvio no processamento. Se a condição for verdadeira será executada toda a instrução que estiver presente no then, caso contrário, será executada toda a instrução presente no else. A seguir apresenta-se a forma geral da estrutura:

Lógica

51

e-Tec Brasil

if <condição> then <instruções para condição verdadeira> else <instruções para condição falsa>; De acordo com as instruções presentes dentro do then e do else, verificase a importância de analisar se os comandos correspondem a um bloco de comandos ou apenas uma linha de comando, caso há um bloco de comandos, faz necessário o uso dos comandos begin e end, sendo o end acompanhado do símbolo ; (ponto e vírgula) para representar ao compilador que não há apenas uma linha de comando dentro da instrução then ou else e sim um bloco de comandos que inicia-se no begin e encerra-se no end;. Esta diferenciação da sintaxe do bloco de comandos ou apenas da linha de comando presente na instrução then e else não estão presentes no pseudocódigo em relação aos comandos então e senão. A forma geral a seguir apresenta a estrutura condicional utilizando as instruções begin e end:

if <condição> then begin <instruções para condição verdadeira>; <instruções para condição verdadeira>; end else begin <instruções para condição falsa>; <instruções para condição falsa>; end; Observe que nos dois casos abordados acima, qualquer instrução que antecede a instrução else está escrita sem o ponto-e-vírgula (;). Isto ocorre pelo fato de a instrução else ser uma extensão da instrução if...then, e sendo assim, o final da condição somente ocorre após o processamento da instrução else.

e-Tec Brasil

52

Técnico em Informática

6.2.1. Exemplo
program ORDENACAO; var aux, X1, X2 : integer; begin writeln (‘Digite um valor para X1: ‘); readln(X1); write (‘Digite um valor para X2: ‘); readln(X2); writeln; if (X1 > X2) then begin aux := X1; X1 := X2; X2 := aux; end; writeln(‘Os valores ordenados são: ‘); write(X1, ‘ - ‘, X2); end.

6.3. Exercícios de Fixação
1) João comprou um computador para controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de São Paulo (75 quilos) deve pagar uma multa de R$ 3,50 por quilo excedente. João precisa que você faça um programa que receba do usuário o peso de peixes e verifique se há excesso. Se houver, informar o excesso e o valor da multa que João deverá pagar. Escreva este algoritmo em pseudocódigo e na linguagem Pascal. 2) Elabore um algoritmo em pseudocódigo e na linguagem Pascal que dada a idade de um nadador classifique-o em uma das seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos

Lógica

53

e-Tec Brasil

Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos 3) A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de indústrias que são altamente poluentes do meio ambiente. O índice de poluição aceitável varia de 0,05 até 0,25. Se o índice sobe para 0,3 as indústrias do 1º grupo são intimadas a suspenderem suas atividades, se o índice crescer para 0,4 as indústrias do 1º e 2º grupo são intimadas a suspenderem suas atividades, se o índice atingir 0,5 todos os grupos devem ser notificados a paralisarem suas atividades. Faça um algoritmo em pseudocódigo e na linguagem Pascal que leia o índice de poluição medido e emita a notificação adequada aos diferentes grupos de empresas.

e-Tec Brasil

54

Técnico em Informática

UNIDADE 7 - ESTRUTURA DE REPETIÇÃO
Objetivos da aula
De acordo com as referências [1] e [2], neste capítulo serão apresentados vários métodos de estruturas de repetições na sintaxe do pseudocódigo e na linguagem Pascal. Observando-se as referências [1], [2] e [3], no final deste capítulo estarão presentes vários exercícios onde o estudo será de extrema importância para a fixação dos conhecimentos obtidos.

7. Estrutura de repetição
Todos os algoritmos apresentados até agora permitem a execução de um comando ou bloco de comandos uma única vez. Para reutilizar um único bloco de comandos, sem a necessidade de repetilo, é necessário o uso de uma estrutura de repetição. A Estrutura de repetição permite que uma sequência de comandos seja executada repetidamente até que uma condição determinada seja satisfeita o que fará a interrupção do processo. É possível de encontrar na literatura outras nomenclaturas para a estrutura de repetição como laços, loops ou iterações que correspondem a cada ciclo do código da estrutura de repetição. Esta estrutura poderá se apresentar no pseudocódigo utilizando 3 formas: para, enquanto e faça-enquanto. A escolha de cada uma delas depende do problema apresentado.

7.1 para
Forma geral: para inicialização, condição, incremento

Lógica

55

e-Tec Brasil

comando ou bloco de comandos Fimpara Onde para, fimpara são palavras-chave que correspondem aos comandos da estrutura de repetição; inicialização é um comando o qual necessita de uma variável numérica que informa o valor que ela será inicializada; condição é uma expressão lógica que, se verdadeira, determina a interrupção do processo de repetição. incremento é o comando que aumenta ou diminui o valor da variável numérica.

7.1.1. Exemplos
1) Algoritmo {Cálculo de média de 20 alunos} declare NOME {nome dos alunos} literal N1, N2, N3, N4 {notas bimestrais}, M {media} numérico C numérico para C 1, C<20, C C+1 leia NOME {dados do primeiro aluno} leia N1, N2, N3, N4 M<- (N1+N2+N3+N4)/4 escreva NOME, M fimpara fimalgoritmo Assim, teremos uma estrutura de repetição que será interrompida quando o contador de alunos for igual a 20. Observe que, se for alterado a condição de parada, é possível resolver o problema para qualquer número de alunos.

e-Tec Brasil

56

Técnico em Informática

2) Pseudocódigo que representa os números inteiros de 0 a 50.

Algoritmo {números inteiros de 0 a 50} declare N {números de 0 a 50} numérico para N 0, N<50, N N+1 escreva N fimpara fimalgoritmo Observe que: • Este algoritmo não possui comando de entrada porque os números a serem escritos não são quaisquer; eles variam de 0 a 50 de 1 em 1 e correspondem a própria variável contadora da estrutura de repetição. • Quando ao fim da execução do algoritmo, o último N armazenado na memória interrompida, desviará o fluxo para o primeiro comando após o fimpara, neste caso, para o fimalgoritmo. 3) Pseudocódigo de um número que lê N números e apresenta seus números pares. Algoritmo {escrever os pares} declare N {números de números} numérico NU {cada número a ser lido}, C {contador de números} numérico leia N para C 1, C<N, C C+1 leia NU se RESTO(NU,2)=0 então escreva NU fimse fimpara fimalgoritmo

Lógica

57

e-Tec Brasil

4) O pseudocódigo lê um conjunto de N números, determina e apresenta a soma dos positivos.

Algoritmo declare N {número de elementos}, X {cada um dos números} numérico C {contador de números}, SOMA { soma dos positivos} numérico leia N SOMA 0 para C 1, C<N, C C+1 leia X se X>0 então SOMA<-SOMA+X fimse fimpara escreva SOMA fimalgoritmo Observe que o comando “escreva SOMA” ficou fora da estrutura de repetição, porque o que nos interessa é o resultado final da soma e não os subtotais.

7.2. Estrutura de repetição para na linguagem Pascal
A estrutura de repetição para do pseudocódigo, na linguagem Pascal é representada pelo comando for que executa iterativamente um comando, ou bloco de comandos enquanto uma condição é satisfeita. Naturalmente, a condição de parada da estrutura de repetição, correspondente ao comando for, é representada pela variável contador.

e-Tec Brasil

58

Técnico em Informática

Forma Geral:

for variavel := <início> to/downto <fim> do comando; ou for variavel := <início> to/downto <fim> do begin bloco de comandos; end;

7.2.1. Exemplos
1) program NUMEROS_1_50; var c : integer; begin for c := 1 to 50 do writeln(c); end. 2) program CALCULO_MEDIA; var c : integer; N1, N2, N3, N4, M : real; nome : string; begin for c := 1 to 20 do begin write(‘Digite suas 4 notas: ’); readln(N1, N2, N3, N4); M:= (N1+N2+N3+N4)/4; writeln(‘Nome: ’,nome,’Média:’,M); end; end.

Lógica

59

e-Tec Brasil

7.3. enquanto
Forma geral: enquanto condição comando ou bloco de comandos Fimenquanto Onde enquanto, fimenquanto são palavras-chave ou comandos da estrutura de repetição enquanto; condição é uma expressão lógica que, se verdadeira, determina a interrupção do processo de repetição. A escolha entre as estruturas vai depender do problema a ser resolvido e, algumas vezes, da preferência do programador.

7.3.1. Exemplo
1) Escrever os números inteiros de 0 a 50 na estrutura de repetição enquanto. Algoritmo {números inteiros de 0 a 50} declare N {números de 0 a 50} numérico N 0 enquanto N<>50 escreva N N N+1 fimenquanto fimalgoritmo

7.4. Estrutura de repetição enquanto na linguagem Pascal
A estrutura de repetição enquanto do pseudocódigo, é representada na linguagem Pascal pela instrução while...do e se caracteriza por efetuar um teste boleano no início de uma iteração, verificando se é permitido executar a linha de comando ou bloco de comandos dentro dela.

e-Tec Brasil

60

Técnico em Informática

Forma Geral: while <condição> do <linha de código>; ou

while <condição> do begin <bloco de comandos>; end;

7.4.1. Exemplo
1) Escrever os números inteiros de 0 a 50 na estrutura de repetição while... do na linguagem pascal. program NUMEROS_1_50; var c : integer; begin c := 1 while c<=50 do writeln(c); end.

7.5. faça-enquanto
Em alguns problemas faz-se necessário o uso de algum comando dentro da estrutura de repetição, antes da condição de parada. A escolha de cada estrutura depende do problema a ser resolvido e da lógica individual. Nesta estrutura, obrigatoriamente, a iteração será realizada pelo menos uma vez. Forma geral: faça comando ou bloco de comandos enquanto condição

Lógica

61

e-Tec Brasil

7.5.1. Exemplo
1) Escrever os números inteiros de 0 a 50.

Algoritmo {números inteiros de 0 a 50} declare N {números de 0 a 50} numérico N 0 faça escreva N N N+1 enquanto N<=50 fimalgoritmo

7.6. Estrutura de repetição faça-enquanto na linguagem Pascal
A estrutura de repetição faça-enquanto do pseudocódigo, é representada na linguagem Pascal pela instrução repeat...until e se caracteriza por efetuar um teste boleano no final de uma iteração, sendo permitido obrigatoriamente a compilação de pelo menos uma iteração da linha de comando ou bloco de comandos presentes dentro da estrutura. Esta estrutura é semelhante a estrutura de repetição enquanto do pseudocódigo ou while...do da linguagem Pascal. Forma Geral: repeat <comando ou bloco de comandos>; until <condição>;

7.6.1. Exemplos
1) Escrever os números inteiros de 0 a 50 na estrutura de repetição while... do na linguagem pascal.

e-Tec Brasil

62

Técnico em Informática

program NUMEROS_1_50; var c : integer; begin c := 0 repeat writeln(c); c := c+1; until c<=50; end. 2) Algoritmo utilizando a estrutura de repetição repeat...until que realiza a multiplicação de dois números dados pelo usuário enquanto desejo do próprio. program EXEMPLO_REPEAT; var N1, N2, R : real; RESP : string; begin RESP := ‘S’; repeat write(‘Digite o 1º número: ’); readln(N1); write(‘Digite o 2º número: ’); readln(N2); R := N1 * N2; writeln(‘Multiplicação: ’,R); write(‘Deseja continuar S/N?’); readln(RESP); until (<RESP <> ‘S’) and (<RESP <> ‘s’); end.

7.7. Exercícios de Fixação
1) De acordo com o algoritmo abaixo, escreva um enunciado para ele e implemente-o na linguagem pascal. Algoritmo {Cálculo de médias} declare NM {matrícula}, N1, N2, N3, N4 {Notas}, Mn{médias} numé-

Lógica

63

e-Tec Brasil

rico leia NM enquanto NM<>0 leia N1, N2, N3, N4 M (N1+N2+N3+N4)/4 se M>=6 então escreva NM, M, “Aprovado” senão escreva NM, M, “Reprovada” fimse leia NM fimenquanto fimalgoritmo 2) O DA da Universidade vai proceder à eleição de seu Presidente. Para concorrer a este cargo apresentaram-se três candidatos. Foi estipulado que os alunos eleitores deveriam preencher a cédula com um único número assim determinado: 1,2 ou 3: significam voto para o candidato número 1, ou 2 ou 3 respectivamente; 0: significa voto branco. 4: significa voto nulo. Deseja saber: a) o número do candidato vencedor;

e-Tec Brasil

64

Técnico em Informática

b) c) d)

o número de votos em branco; o número de votos nulos; o número de estudantes que compareceram às urnas.

A última leitura, que não entrará nos cálculos, trará o número do voto igual a -1. 3) Escreva um algoritmo em Pascal que leia dois valores inteiros. Realize a adição destes números, armazenando o resultado em uma terceira variável. Apresente o valor encontrado. Repita esta operação 5 vezes. 4) A comissão organizadora do vestibular de uma Universidade deseja fazer um algoritmo para apurar os resultados do seu vigésimo vestibular. De cada candidato inscrito foram lidos: • • Número de inscrição; Número de pontos obtidos em cada uma das 4 provas.

Calcular e escrever: a) b) c) o total de pontos de cada candidato; o primeiro e o último classificados; a média aritmética dos pontos dos candidatos.

O algoritmo deverá processar até que o número de inscrição do candidato seja igual a 0. 5) Um funcionário de uma empresa recebe aumento salarial anualmente. Sabe-se que: a) esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00; b) em 1996 recebeu aumento de 1,5% sobre seu salário inicial;

Lógica

65

e-Tec Brasil

c) a partir de 1997, os aumentos salariais sempre corresponderam ao dobro do percentual do ano anterior. Faça um programa em pascal que determine o salário atual desse funcionário. 6) Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o número do aluno e o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo. Mostre o número do aluno mais alto e o número do mais baixo, junto com suas alturas. 7) Em um campeonato de futebol existem cinco times e cada time possui onze jogadores. Faça um programa que receba a idade, o peso e a altura de cada um dos jogadores, calcule e mostre: a) a quantidade de jogadores com idade inferior a 18 anos; b) a média das idades dos jogadores de cada time; c) a média das alturas de todos os jogadores do campeonato; d) a percentagem de jogadores com mais de 80 quilos entre todos os jogadores do campeonato. 8) Escreva um código em pseudocódigo e um programa em pascal que avalie os dados estatísticos de 15 pessoas, obtendo o nome, sexo e altura de cada um. Calcule e mostre: a) a maior e a menor altura do grupo; b) a média de altura das mulheres; c) o número de homens; d) o sexo da pessoa mais alta.

e-Tec Brasil

66

Técnico em Informática

Lógica

67

e-Tec Brasil

e-Tec Brasil

68

Técnico em Informática

Lógica

69

e-Tec Brasil

e-Tec Brasil

70

Técnico em Informática

Lógica

71

e-Tec Brasil

e-Tec Brasil

72

Técnico em Informática

Lógica

73

e-Tec Brasil

Sign up to vote on this title
UsefulNot useful