Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Pascal - Apostilas - Informática Part1, Notas de estudo de Informática

Apostilas de Informática sobre a Linguagem de Programação Pascal, Algoritmos, Conceitos básicos de programação, Linguagens de programação, A linguagem pascal, Tipos de dados, Expressões, Formato de um programa pascal.

Tipologia: Notas de estudo

2013

Compartilhado em 28/08/2013

Garoto
Garoto 🇪🇸

4.6

(121)

1 / 23

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ASPER ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO
INTRODUÇÃO À
PROGRAMAÇÃO
PROF. CÂNDIDO EGYPTO
JOÃO PESSOA / PB
MARÇO / 2004
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Pré-visualização parcial do texto

Baixe Pascal - Apostilas - Informática Part1 e outras Notas de estudo em PDF para Informática, somente na Docsity!

ASPER – ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO

INTRODUÇÃO À

PROGRAMAÇÃO

PROF. CÂNDIDO EGYPTO

JOÃO PESSOA / PB

MARÇO / 2004

SUMÁRIO

1. ALGORITMOS

1.1. DEFINIÇÃO DE ALGORITMO

A palavra algoritmo , à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:

  • instruções para se utilizar um aparelho eletrodoméstico;
  • uma receita para preparo de algum prato;
  • guia de preenchimento para declaração do imposto de renda;
  • a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
  • a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH]

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY]

“Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

1.2. 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 especificar 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ífica e até mesmo do próprio computador.

1.3. CARACTERÍSTICAS

Todo algoritmo deve apresentar algumas características básicas:

  • ter fim;
  • não dar margem à dupla interpretação (não ambíguo);
  • capacidade de receber dado(s) de entrada do mundo exterior;
  • poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;
  • ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito).

1.4. FORMAS DE REPRESENTAÇÃO

Algoritmos podem ser representados, dentre outras maneiras, por:

1.4.1. DESCRIÇÃO NARRATIVA

Faz-se uso do português para descrever algoritmos.

EXEMPLO: Receita de Bolo:

Providencie manteiga, ovos, 2 Kg de massa, etc. Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove

VANTAGENS:

  • o português é bastante conhecido por nós;

DESVANTAGENS:

  • imprecisão;
  • pouca confiabilidade (a imprecisão acarreta a desconfiança);
  • extensão (normalmente, escreve-se muito para dizer pouca coisa).
1.4.2. FLUXOGRAMA

Utilização de símbolos gráficos para representar algoritmos. No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

Cálculo Decisão Entrada Saída Início/Fim

EXEMPLO EXPLICAÇÃO

Início

NUM
DOBRO = NUM * 2
DOBRO

Fim

Início do algoritmo

Entrada do número

Cálculo do dobro do número

Apresentação do resultado

Fim do algoritmo

VANTAGENS:
  • Uma das ferramentas mais conhecidas;
  • Figuras dizem muito mais que palavras;
  • Padrão mundial

DESVANTAGENS:

  • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;
  • Complica-se à medida que o algoritmo cresce.
1.5.1. FUNCIONAMENTO DO NOSSO COMPUTADOR

Todos os computadores, independentemente dos seus tamanhos, são conceitualmente semelhantes ao esquema da figura anterior (há algumas diferenças, mas não trataremos aqui dos casos especiais).

Resumidamente, podemos afirmar que existem 4 (quatro) operações básicas que qualquer computador pode executar:

a) operações de entrada e saída: ler dados do teclado e escrever dados na tela são exemplos destas operações. Elas servem para introduzir dados na memória do nosso computador e exibir dados que já estejam lá armazenados;

b) operações aritméticas: são utilizadas na realização de operações matemáticas (adição, subtração, multiplicação e divisão);

c) operações lógicas e relacionais: têm aplicabilidade em comparações, testes de condições lógicas (2>6? X=Y ?);

d) movimentação de dados entre os vários componentes: as operações aritméticas são executadas na Unidade Lógica e Aritmética, necessitando da transferência dos dados para essa unidade e da volta do resultado final para ser guardado na memória.

1.5.2. RESOLVENDO UM PROBLEMA

Suponha que queiramos resolver o seguinte problema: a partir de dois números que serão informados, calcular a adição dos mesmos. Se você fosse encarregado de efetuar essa tarefa, seria bem provável que utilizasse os passos a seguir:

a) saber quais são os números; b) calcular a soma dos números; c) responder à questão com o valor do resultado.

Vejamos como seria resolvido esse mesmo problema em termos das operações básicas citadas anteriormente:

a) operação de entrada de dados dos números ; b1) movimento do valor dos números entre a memória e a ULA; b2) operação aritmética de somar os 2 números; b3) movimentação do resultado da ULA para guardar na memória; c) operação de saída do resultado, que está guardado na memória, para o dispositivo de saída desejado.

Deve-se salientar que os passos b1 e b3, normalmente, ficam embutidos na operação matemática, não sendo explicitados.

Em resumo, pode-se dizer que escrever algoritmos ou, em última análise, programar consiste em dividir qualquer problema em muitos pequenos passos , usando uma ou mais das quatro operações básicas citadas.

Esses passos que compõem o algoritmo são denominados de comandos. Os comandos de uma linguagem de programação podem estar mais próximos da máquina (linguagens de baixo nível) ou serem mais facilmente entendidos pelo homem (linguagens de alto nível). A seqüência de operações básicas, dada anteriormente, para resolver o problema de adicionar dois números, está em uma linguagem de baixo nível para o nosso computador hipotético. Em uma linguagem de alto nível teríamos um resultado assim:

Leia X,Y SOMA fl X + Y Escreva SOMA

1.6. ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS

Existem 3 estruturas básicas de controle nas quais se baseiam os algoritmos: sequenciação, decisão e repetição. Detalharemos cada uma delas:

1.6.1. SEQUENCIAÇÃO

Os comandos do algoritmo fazem parte de uma seqüência, onde é relevante a ordem na qual se encontram os mesmos, pois serão executados um de cada vez, estritamente, de acordo com essa ordem. De uma forma genérica, poderíamos expressar uma seqüência da seguinte maneira:

Comando- Comando- Comando- : Comando-n

Tem-se uma sequenciação de n comandos na qual os comandos serão executados na ordem em que aparecem, isto é, o comando de ordem i+1 só será executado após a execução do de ordem i (o 3o^ só será executado após o 2o).

Todo algoritmo é uma seqüência. A sequenciação é aplicada quando a solução do problema pode ser decomposta em passos individuais.

1.6.2. DECISÃO OU SELEÇÃO

Essa estrutura também é conhecida por estrutura condicional. Há a subordinação da execução de um ou mais comandos à veracidade de uma condição. Vejamos o funcionamento:

Se <condição> então <seq. de comandos-1> senão <seq. de comandos-2>

Se a <condição> for verdadeira será executado a <seq. de comandos-1> e, em caso contrário, teremos a execução da <seq. de comandos-2>.

A decisão deve ser sempre usada quando há a necessidade de testar alguma condição e em função da mesma tomar uma atitude. Em nosso dia-a-dia, estamos sempre tomando decisões, vejamos um exe mplo:

Se tiver dinheiro suficiente, então vou almoçar em um bom restaurante. Caso contrário ( senão ), vou comer um sanduíche na lanchonete da esquina.

1.6.3. REPETIÇÃO OU ITERAÇÃO

Essa estrutura também é conhecida por “looping” ou laço. A repetição permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quantas uma condição lógica permita. Vejamos alguns exe mplos:

a) vou atirar pedras na vidraça até quebrá-la; b) baterei cinco pênaltis; c) enquanto tiver saúde e dinheiro, vou desfrutar a vida.

No exemplo (a), vai-se repetir a ação de atirar pedras na janela até que seja satisfeita a condição de quebrar a janela.

No exemplo (b), haverá a repetição da atitude de bater um pênalti um número determinado de vezes (cinco).

No exemplo (c), a condição que me permitirá continuar desfrutando a vida é ter dinheiro e saúde.

A utilização combinada dessas 3 estruturas descritas vai permitir expressar, usando qualquer que seja a ferramenta, a solução para uma gama muito grande de problemas. Todas as linguagens de programação oferecem representantes dessas estruturas.

EXERCÍCIOS PROPOSTOS

P1.01. Defina, com suas palavras, o que é algoritmo.

P1.02. Cite alguns algoritmos que podemos encontrar na vida quotidiana.

P1.03. De acordo com seu entendimento, qual é a característica mais importante em um algoritmo? Justifique a sua resposta.

P1.04. Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?

P1.05. 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 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: a) encher uma bacia com água; b) trocar uma lâmpada no teto de sua casa; c) trocar o pneu de um carro; d) calcular a sua idade daqui a 20 anos; e) calcular a média de um aluno com 3 notas.

P1.06. Cite as formas básicas para se representar algoritmos, definindo-as.

P1.07. Em sua opinião, qual a melhor forma de se representar algoritmos? Justifique sua resposta.

P1.08. Descreva, com suas próprias palavras, o funcionamento do nosso computador hipotético.

P1.09. Especifique soluções, em termos das operações básicas do nosso computador, para os itens (d) e (e) do exercício P1.05.

P1.10. Quais as estruturas básicas de controle dos algoritmos? Explique cada uma delas.

P1.11. Identifique nas respostas do exercício P1.05 a utilização das estruturas básicas de controle de fluxo.

P1.12. Escreva o algoritmo solução para o problema de multiplicar dois números (a solução deve ser expressa em alto nível).

P1.13. Resolva o P1.09 em termos de uma linguagem de alto nível.

P1.14. Em que consiste a técnica de "refinamentos sucessivos"?

P1.15. É comum ouvirmos programadores exp erimentados afirmarem:

“algoritmos ... aprendi e nunca usei na prática ... não vejo necessidade...". Discuta esse tipo de afirmativa.

2. CONCEITOS BÁSICOS DE PROGRAMAÇÃO

Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado , isto é, que seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente.

2.1. LINGUAGENS DE PROGRAMAÇÃO

Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável. Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo comp utador.

Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos, ausente e presente.

Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).

Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina.

2.2. TRADUTORES

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.

COMPILADOR - traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto).

INTERPRETADOR - traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte.

Exemplos de linguagens de programação: PASCAL, C, CLIPPER, COBOL, HTML, JAVA, etc.

EXERCÍCIOS PROPOSTOS

P2.01. Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) tradutor P2.02. Qual a diferença entre linguagem de baixo nível e linguagem de alto nível? P2.03. Explique a diferença entre compilador e interpretador.

Programa

Fonte

Ling.

Alto

Nível

COMPILADOR

Programa

Fonte

Ling.

Alto

Nível

Programa

Objeto

Ling.

Baixo

Nível

EXECUÇÃO Resultados

Programa

Fonte

Ling.

Alto

Nível

INTERPRETADOR

Programa

Fonte

Ling.

Alto

Nível

Resultados

EXECUÇÃO

4. TIPOS DE DADOS

A linguagem Pascal suporta os seguintes tipos de dados:

4.1. SIMPLES

INTEGER - Envolve os números inteiros. A partir da versão 5.0 do Turbo Pascal passaram a existir também outros tipos de números inteiros: SHORTINT, BYTE, WORD e LONGINT.

Tipo Valor mínimo Valor máximo Bytes ocupados SHORTINT -128 127 1 BYTE 0 255 1 INTEGER -32768 32767 2 WORD 0 65535 2 LONGINT -2147483648 2147483647 4

Exemplos: -45, 1, 138, 0, -

REAL - abrange os números reais. A partir da versão 5.0 passaram a existir também outros tipos de números reais: SINGLE, DOUBLE, EXTENDED e COMP.

Tipo Valor mínimo

Valor máximo

Bytes ocupados

Dígitos Significativos REAL 2.9 x 10-39^ 1.7 x 10^38 6 11- SINGLE 1.5 x 10-45^ 3.4 x 10^38 4 7- DOUBLE 5.0 x 10-324^ 1.7 x 10^308 8 15- EXTENDED 3.4 x 10-4932^ 1.1 x 10^4932 10 19- COMP -2^63 + 1 263 - 1 8 19-

Exemplos: 4.5, -32.0, .5, 7.8E3, 21E+3, -315E-

CHAR - representa um único caracter, escrito entre apóstrofos ( ‘ ). A maioria dos computadores utiliza a tabela de códigos ASCII para representar todos os caracteres disponíveis. Exe mplos:

'A', 'B', 'a', '1', '@', ' '

BOOLEAN - representa um valor lógico. Utiliza apenas duas constantes lógicas: TRUE (verdadeiro) e FALSE (falso).

4.2. ESTRUTURADOS

STRING - formado por um conjunto de elementos do tipo CHAR. O tamanho máximo é de 255 caracteres. Exemplos:

'CPU', 'Processamento de Dados', '123’

Discutiremos com mais detalhes o tipo string em um capítulo especialmente dedicado a este fim.

Os outros tipos de dados estruturados são: ARRAY , RECORD , FILE , SET e TEXT. Os dois primeiros serão apresentados no decorrer da apostila, enquanto os demais não fazem parte do escopo deste texto.

4.3. DEFINIDOS PELO USUÁRIO

A linguagem Pascal permite que os programadores, além de usarem os tipos predefinidos na linguagem, também possam criar novos tipos de dados. Isto se torna bastante útil quando lidamos com estruturas de dados complexas, como também ajuda a tornar o programa mais legível. Este assunto, pela sua complexidade, será abordado mais adiante.

EXERCÍCIOS PROPOSTOS

P4.01. Escreva o tipo de dado ideal para se representar as seguintes informações:

a) O número da conta bancária b) A altura de uma pessoa em metros c) A placa de um veículo d) O número de filhos de uma pessoa e) A população de um país f) A cor de um objeto

P4.02. Quais os tipos de dados simples existentes na linguagem Pascal?

P4.03. Quais os tipos de dados estruturados existentes na linguagem Pascal?

P4.04. Quais os valores possíveis em um dado do tipo Boolean?

P4.05. O que é uma string?

P4.06. Qual o tamanho máximo de uma string?

P4.07. Identificar os tipos dos seguintes dados:

a) 'Processamento de Dados' b) 0. c) '4.5E10' d) TRUE e) '?' f) ' ' g) -5.3E- h) '.05' i) 'FALSE' j) 0

5.3. OPERADORES RELACIONAIS

Operador Operação = igual

maior < (^) menor = (^) maior ou igual <= (^) menor ou igual <> (^) diferente

EXEMPLOS: Expressão Resultado 1 = 2 FALSE 'A' = 'a' FALSE 5 > 2 TRUE 3 <= 3 TRUE TRUE < FALSE FALSE 'JOAO' > 'JOSE' FALSE 2 + 3 <> 5 FALSE 'comp' <> 'COMP' TRUE '11' < '4' TRUE

5.4. OPERADORES LÓGICOS

Operador Operação not (^) não (negação) and (^) e (conjunção) or (^) ou (disjunção)

EXEMPLOS:

Expressão Resultado (1 > 2) and (3 > 2) FALSE (1 > 2) or (3 > 2) TRUE not (1 > 2) TRUE

5.5. PRIORIDADE

Em uma expressão, a ordem de avaliação dos operadores segue a tabela abaixo:

Prioridade Operadores 1ª * / DIV MOD 2ª + - 3ª NOT 4ª AND 5ª OR 6ª = > < >= <= <>

Como a ordem de precedência dos operadores lógicos é maior que a dos operadores relacionais, devem sempre ser usados parênteses quando se escrever uma expressão lógica complexa. Por exemplo:

( A > B ) OR ( B = C )

EXERCÍCIOS PROPOSTOS

P5.01. O que são expressões aritméticas?

P5.02. Qual o resultado das expressões aritméticas abaixo, sabendo-se que os valores de X, Y e Z são, respectivamente, 1, 2 e 5? a) Z mod Y div Y b) X + Y + Z / 3 c) FRAC( X / Z) + ROUND(Z / y) * TRUNC(Z / Y) d) SQRT( Z div Y + X * Y) e) Z - ABS(X - SQR(Y))

P5.03. O que são Funções Predefinidas?

P5.04. Escreva o resultado das seguintes funções: a) ABS(-4) b) ABS(5.2) c) FRAC(23.0) d) FRAC(-3.1) e) TRUNC(1.8) f) TRUNC(2.2) g) ROUND(1.8) h) ROUND(2.2) i) SQR(1.0) j) SQR(10) k) SQRT(25) l) SQRT(9.0)

P5.05. Escreva a expressão para se calcular o valor de 2^5.

P5.06. Preencha a Tabela Verdade abaixo:

A B A and B A or B not A Not B TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE

P5.07. Escreva o resultado das seguintes comparações:

a) 1 <> 1. b) 'abc' > 'ABC' c) ' ' = ' ' d) FALSE = FALSE e) TRUE <> TRUE f) 'JOSE' > 'JOSEFINA' g) '50' < '100'

P5.08. Qual o resultado das expressões lógicas abaixo, sabendo-se que os valores de A e B são, respectivamente, TRUE e FALSE? a) not A and B or A and not B b) not (not (A or B) and (A or B)) c) A or B and not A or not B d) (A or B) and (not A or not B)

6.3. DECLARAÇÃO DE TIPOS

Serve para definirmos novos tipos e estruturas de dados. Não detalharemos esse tópico agora por ser assunto dos próximos capítulos.

6.4. DECLARAÇÃO DE VARIÁVEIS

Todas as variáveis que serão utilizadas em um programa devem ser declaradas dentro do mesmo.

A declaração de uma variável tem como finalidade:

  • especificar o tipo de dado que poderá ser armazenado na variável;
  • alocar um espaço na memória onde possa ser armazenado o conteúdo da variável;
  • dar um nome (identificador) à variável.

Possui o seguinte formato:

VAR <lista-de-identificadores> : ; ... <lista-de-identificadores> : ;

Onde: <lista-de-identificadores> é uma lista de variáveis de um mesmo tipo, separadas por vírgula. é o nome de um dos tipos predefinidos ou criado pelo programador.

EXEMPLO:

VAR X,Y,Z : REAL; I,J : INTEGER; ACHOU : BOOLEAN; LETRA : CHAR; PALAVRA,FRASE : STRING;

6.5. DECLARAÇÃO DE PROCEDIMENTOS E FUNÇÕES

Nesta área são definidos os procedimentos e funções utilizados pelo programa. Também é um tópico que será detalhado mais adiante.

6.6. ÁREA DE COMANDOS

É nesta área onde é inserido o algoritmo do programa. Os comandos são separados entre si pelo delimitador ponto-e- vírgula. A forma geral é:

BEGIN ; ... ; END

6.7. COMENTÁRIOS

Um comentário na linguagem Pascal é idêntico à nossa linguagem algorítmica, utilizamos chaves:

{ comentário }

EXEMPLO:

program REAJUSTE_SALARIO; {Finalidade: Calc. o reajuste de um salario em 20%}

uses Crt; {unidade que contém os comandos de tela}

const IND = 0.20; {indice do reajuste}

var SAL_ATUAL {salario atual}, SAL_NOVO {novo salario}, AUMENTO {valor do aumento} : Real;

begin

clrscr; {limpa a tela}

{leitura do salario atual} write('Digite o salario atual: '); readln(SAL_ATUAL);

{calculo do reajuste} AUMENTO := SAL_ATUAL * IND; SAL_NOVO := SAL_ATUAL + AUMENTO;

{exibicao do resultado} writeln('Novo Salario = ',SAL_NOVO:10:2); readkey;

end.

EXERCÍCIOS PROPOSTOS

P6.01. Qual o formato básico de um programa Pascal?

P6.02. Quais as áreas que podem existir em um bloco do Pascal? Qual delas é obrigatória?

P6.03. Qual a finalidade de declararmos uma variável?

P6.04. Qual a finalidade de um comentário dentro de um programa? Como deve ser escrito em Pascal?

P6.05. Dê um exemplo para cada uma das áreas abaixo:

a) Declaração de Uso de Unidades b) Declaração de Constantes c) Declaração de Variáveis

P6.06. Escreva os comandos necessários para declarar:

a) uma variável que receba uma frase qualquer b) três variáveis que recebam as 3 notas de um aluno c) uma variável que receba a idade de uma pessoa