Upcoming SlideShare
×

# Apostila pascal

1,180 views

Published on

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,180
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
53
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Apostila pascal

1. 1. INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO /###### /### /##### /##### /### /### | ### /### /### ### /###__/### / ###__/## /### ### | ### | ###| ### /###_/ ### | #### /_/ | ### |/_/ /###_/ ### | ### | ######_/ | ### | ### / #### | ### | ### | ### | ### | ###__/ | ######### / #### | ### | ######### | ### | ### | ###__/### /### ### |/ ### /## | ###__/### | ### | ### | ### | ### |/ ##### / ##### / | ### | ### | ####### |/__/ |/__/ |/__/ /____/ /____/ |/__/ |/__/ |/______/ SEMESTRE 2008/1
2. 2. SUMÁRIO 1 - FUNDAMENTOS DE PROGRAMAÇÃO ............................................ 1 1.1 O QUE SÃO ALGORITMOS ?.................................................................. 1 1.1.1 POR QUE PRECISAMOS DE ALGORITMOS ?.................................... 2 1.1.2 MÉTODO PARA CONSTRUIR UM ALGORITMO ................................ 2 1.1.3 EXERCÍCIOS ............................................................................. 3 1.2 TIPOS DE INFORMAÇÃO...................................................................... 3 1.2.1 TIPOS INTEIROS (NUMÉRICOS) .................................................... 3 1.2.2 TIPOS REAIS (NUMÉRICOS) ......................................................... 3 1.2.3 TIPOS CARACTERES .................................................................. 4 1.2.4 TIPOS LÓGICOS......................................................................... 4 1.3 VARIÁVEIS ........................................................................................ 4 1.3.1 ARMAZENAMENTO DE DADOS NA MEMÓRIA................................. 4 1.3.2 CONCEITO E UTILIDADE DE VARIÁVEIS........................................ 4 1.4 INSTRUÇÕES PRIMITIVAS .................................................................... 5 1.5 REPRESENTAÇÃO DE ALGORITMOS ATRAVÉS DE FLUXOGRAMAS............. 6 1.5.1 EXERCÍCIOS ............................................................................. 6 1.6 INTRODUÇÃO A LINGUAGEM PASCAL ................................................... 7 1.6.1 PROGRAMAS FONTE, OBJETO E EXECUTÁVEL .............................. 8 1.6.2 NOMES DOS ARQUIVOS EM DISCO................................................ 9 2 - FUNDAMENTOS DA PROGRAMAÇÃO EM PASCAL .......................... 11 2.1 ESTRUTURA DE UM PROGRAMA EM PASCAL ......................................... 11 2.1.1 IDENTIFICADORES .................................................................... 12 2.1.2 TIPOS DEFINIDOS DO PASCAL ..................................................... 13 2.1.2.1 TIPO INTEIRO................................................................ 14 2.1.2.2 TIPO BOOLEAN .............................................................. 14 2.1.2.3 TIPO CHAR.................................................................... 14 2.1.2.4 TIPO REAL .................................................................... 14 2.1.2.5 TIPO STRING ................................................................. 14 2.1.3 DECLARAÇÃO DE VARIÁVEIS ...................................................... 15 2.1.4 DECLARAÇÃO DE CONSTANTES .................................................. 15 2.1.5 COMANDO DE ATRIBUIÇÃO ........................................................ 16 2.1.6 COMENTÁRIOS.......................................................................... 17 2.1.7 EXPRESSÕES ARITMÉTICAS ........................................................ 17 2.1.8 FUNÇÕES MATEMÁTICAS PRÉ-DEFINIDAS ..................................... 18 2.1.9 EXPRESSÕES LÓGICAS ............................................................... 19 2.2 EXERCÍCIOS ...................................................................................... 20 3 - ENTRADA E SAÍDA DE DADOS ..................................................... 23 3.1 COMANDOS DE ENTRADA ................................................................... 23 3.2 COMANDOS DE SAÍDA......................................................................... 24 3.3 FORMATAÇÃO ................................................................................... 27 3.4 O COMANDO CLRSCR ......................................................................... 29 3.4.1 EXERCÍCIOS ............................................................................. 30 3.5 EXERCÍCIOS AVANÇADOS .................................................................... 32 4 - ESTRUTURAS DE DECISÃO .......................................................... 33 4.1 COMANDOS COMPOSTOS .................................................................... 33 4.2 A ESTRUTURA DE DECISÃO IF ............................................................. 33
3. 3. 4.2.1 EXERCÍCIOS DE FIXAÇÃO ........................................................... 41 4.2.2 EXERCÍCIOS ............................................................................. 43 4.2.3 EXERCÍCIOS OPCIONAIS ............................................................. 45 4.3 A ESTRUTURA DE DECISÃO CASE......................................................... 46 4.4 EXERCÍCIOS ...................................................................................... 49 5 - ESTRUTURAS DE REPETIÇÃO ...................................................... 51 5.1 A ESTRUTURA DE REPETIÇÃO FOR ...................................................... 51 5.1.1 EXERCÍCIOS ............................................................................. 60 5.1.2 EXERCÍCIOS OPCIONAIS ............................................................. 61 5.2 A ESTRUTURA DE REPETIÇÃO WHILE .................................................. 62 5.2.1 EXERCÍCIOS ............................................................................. 64 5.2.2 EXERCÍCIOS OPCIONAIS ............................................................. 65 5.3 A ESTRUTURA DE REPETIÇÃO REPEAT-UNTIL ....................................... 66 5.3.1 EXERCÍCIOS ............................................................................. 72 6 - FUNÇÕES E PROCEDIMENTOS ..................................................... 73 6.1 FUNÇÕES .......................................................................................... 73 6.1.1 ESTRUTURA DE UMA FUNÇÃO .................................................... 73 6.1.2 FUNÇÕES DEFINIDAS POR SOMATÓRIOS ....................................... 85 6.2 PROCEDIMENTOS............................................................................... 86 6.2.1 DEFINIÇÃO, PROCEDIMENTOS SEM PARÂMETROS ......................... 86 6.2.2 PROCEDIMENTOS COM PARÂMETROS .......................................... 89 6.2.3 EXERCÍCIOS ............................................................................. 93 7 - VETORES E MATRIZES ................................................................ 97 7.1 DECLARAÇÃO DE TIPOS ..................................................................... 97 7.2 VETORES .......................................................................................... 97 7.2.1 EXERCÍCIOS ............................................................................. 99 7.3 MATRIZES .........................................................................................100 7.3.1 EXERCÍCIOS .............................................................................102
10. 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. 6a 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.
13. 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 de @##!.)\$\$ 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.
16. 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. 2.1.2 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:
23. 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 ------------------------------------- 1 (alta) NOT 2 *. /, DIV, MOD, AND 3 +, -, OR, XOR 4 (baixa) =, =, =, , , ------------------------------------- 2.2 EXERCÍCIOS 1a 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. 24. 21 1 arctg(x) + |x| c) ------------------- d) e Ln(x + Ln(x)) + 1 1a 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; 3a 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)) 4a 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. 25. 22 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);
27. 27. 24 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: 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:
35. 35. 32 V alorCalculado = P ∗ (1+i)2−1 i Onde: i. i = Taxa; ii. P = Aplicação Mensal iii. n = número de meses Faça um algoritmo que calcule o valor da aplicação. 3.5 EXERCÍCIOS AVANÇADOS 1a Questão) Preparar um programa para ler os comprimentos dos três lados de um triângulo (S1, S2 e S3) e calcular a área do triângulo de acordo com a fórmula: Area = T(T − S1)(T − S2)(T − S3) Onde, T = S1+S2+S3 2
36. 36. 33 4 − ESTRUTURAS DE DECISÃO Para resolver problemas complexos, um programa deve ser capaz de tomar decisões e escolher uma entre várias possibilidades. Nestes casos, são necessárias avaliações bem sucedidas de condições lógicas. O Pascal dispõe de duas estruturas que podem determinar uma direção especíca para um programa: o comando IF-THEN-ELSE e o comando CASE. 4.1 COMANDOS COMPOSTOS Chamaremos de comando composto a toda seqüência nita de instruções separadas entre si por um ponto-e-vírgula e delimitadas pelas palavras chave BEGIN e END. Exemplo: A seqüência de comandos a seguir é um comando composto: BEGIN ClrScr; Write('Valor de x? '); Readln(x) END Todo ponto-e-vírgula escrito antes de um END é opcional. É por isso que omitimos o ponto-e-vírgula do Readln(x) acima. Também é comum se acrescentar alguns espaçoes em branco nas linhas de comandos entre o BEGIN e o END (esse acréscimo de espaços em branco costuma ser chamado endentação ou indentação). Onde a sintaxe do Pascal permitir uma instrução simples, também permitirá um comando composto. 4.2 A ESTRUTURA DE DECISÃO IF A estrutura de decisão IF seleciona para execução um entre dois comandos, ou decide se um determinado comando será executado ou não. A estrutura consiste das cláusulas obrigatórias IF (se) e THEN (então) seguidas, opcionalmente, de uma cláusula ELSE (senão). Sua sintaxe é: IF condição THEN BEGIN comando1; END ELSE BEGIN comando2; END; ou IF condição THEN BEGIN comando1;
37. 37. 34 END; onde condição é uma expressão booleana. Se a condição for verdadeira, isto é, for avaliada em TRUE, então será executado o comando1; se a condição for falsa (FALSE), será executado o comando2. Na sua segunda forma (sem o ELSE), o IF não executará nenhuma ação se a condição for falsa. IF IF | | / / TRUE / FALSE TRUE / FALSE +-----cond-----+ +-----cond-----+ | / | | / | | / | | / | v v v | +----------+ +----------+ +----------+ | | comando1 | | comando2 | | comando1 | | +----------+ +----------+ +----------+ | | | | | +------+-------+ +---------------+ | | O comando1 ou comando2 acima podem ser comandos compostos ou outras estruturas de decisão. Exemplo: Consideremos a seguinte estrutura de decisão: IF (x 0) THEN BEGIN WRITE(Sqrt(x)); END ELSE BEGIN x := 1; END; Neste caso, se x for um valor numérico positivo, então será mostrado o valor da sua raiz quadrada. Em caso contrário, será atribuído a x o valor constante 1. A condição neste caso é a expressão lógica x 0, o comando1 é o WRITE(Sqrt(x)) e o comando2 é a atribuição x := 1. A condição lógica deste exemplo não precisaria estar entre parênteses. OBSERVAÇÃO IMPORTANTE: Não deve haver ponto-e-vírgula antes do ELSE. Se houvesse, o ponto-e-vírgula seria considerado o nal do IF e, neste caso, o ELSE seria considerado o comando seguinte ao IF e seria rejeitado. Exemplo: Suponhamos que x seja uma variável real de um programa e consideremos o seguinte IF: IF (x -1) AND (x 1) THEN BEGIN Writeln('X tem modulo menor do que 1');
41. 41. 38 PROGRAM MaiorDeTres; VAR x, y, z, maior: real; BEGIN Write('Digite tres numeros: '); Readln(x, y, z); Writeln; IF (x y) THEN BEGIN IF (x z) THEN BEGIN maior := x; END; ELSE BEGIN maior := z; END END ELSE BEGIN IF (y z) THEN BEGIN maior := y; END ELSE BEGIN maior := z; END; END; Writeln('O maior dos tres é' ', maior:6:2) END. Observe a ausência do ponto-e-vírgula em muitas das linhas acima. Exemplo: Resolver uma equação do segundo grau, sendo fornecidos seus coecientes a, b e c. Nosso roteiro na elaboração do programa será o seguinte: • Ler os valores dos coecientes a, b, c; • Vericar se a = 0. Se for, rejeitar os valores fornecidos. Neste caso, usaremos o comando HALT para encerrar a execução do programa; • Calcular o valor do discriminante ∆ = b2 − 4 ∗ a ∗ c; • Se o Delta for maior ou igual a zero, calcular as raízes x1 e x2 usando a conhecidíssima fórmula; • Se o Delta for negativo, calcular as raízes complexas. x1 = −b+ √ ∆ 2a x2 = −b− √ ∆ 2a Estamos colocando o módulo na parte imaginária simplesmente porque queremos que x1 tenha parte imaginária positiva e x2 a parte imaginária negativa, independentemente de a ser positivo ou não.
42. 42. 39 • Limpar a tela; • Mostrar a equacao; • Imprimir as raízes. Seguindo esse roteiro, temos o seguinte programa: PROGRAM Eq_2o_Grau; { ======================================================== } { RESOLUCAO DE EQUACOES DO SEGUNDO GRAU } { ======================================================== } USES Crt; VAR a, b, ç delta, x1, x2, ReX, ImX: real; BEGIN Writeln(' 2'); Writeln('RESOLUCAO DA EQUACAO ax + bx + c = 0'); Writeln; Write('Forneca os coeficientes a, b, c : '); Readln(a, b, c); IF (a = 0) THEN { Encerra a execucao quando a = 0 } BEGIN Writeln('O valor de a nao deve ser nulo.'); HALT; END; { Calculo do discriminante } delta := Sqr(b) - 4*a*c; IF (delta = 0) THEN { Caso das raizes reais } BEGIN x1 := (-b + Sqrt(delta))/(2*a); { raiz 1 } x2 := (-b - Sqrt(delta))/(2*a); { raiz 2 } END ELSE { Caso das raizes complexas } BEGIN ReX := (-b)/(2*a); { Parte real das raizes } ImX := Abs(Sqrt(-delta)/(2*a)); { Parte imaginaria } END; ClrScr; { Limpa a tela } Writeln(' ':19, '2'); Writeln('EQUACAO: (', a:7:2, ')x + (', b:7:2, ')x + (', c:7:2, ') = 0'); Writeln; IF (delta = 0) THEN BEGIN Writeln('Raizes reais: ', x1:7:2, ' e ', x2:7:2); END ELSE BEGIN Writeln('Raizes complexas: ', ReX:7:2, ' + ',ImX:7:2, ' í); Writeln(' ':18, ReX:7:2, ' - ', ImX:7:2, ' í); END; Readln; { pausa }
43. 43. 40 END. Após a execução desse programa, temos na tela mensagens como: 2 EQUACAO: ( 1.00)x + ( -2.00)x + ( 3.00) = 0 Raizes complexas: 1.00 + 1.41 i 1.00 - 1.41 i Deixamos aos usuários com uma disposição maior de trabalho o exercício de melhorar a saída desses resultados, fazendo-a mais próxima do usual. Por exemplo, no exemplo executado acima, seria mais interessante (e mais trabalhoso) mostrar uma linha como 2 EQUACAO: x - 2 x + 3 = 0. Observação: Um dos aspectos que mais causam confusão com relação ao IF em qualquer linguagem de programação é o IF encaixado (também chamado de IF aninhado). O problema consiste na diculdade de se indenticar que ELSE está relacionado com qual IF. Nestes casos uma boa endentação pode ajudar. Observe o seguinte IF: IF condição1 THEN BEGIN IF condição2 THEN BEGIN comando1; END; END ELSE BEGIN comando2; END; A qual dos dois IF's anteriores o ELSE se refere? A forma na qual os IF's foram escritos sugere erroneamente que o ELSE está relacionado com o primeiro IF. No entanto, ele está relacionado com o segundo IF. Em geral, o ELSE está ligado ao IF mais próximo. Assim, uma forma melhor de escrever o fragmento acima é: IF condição1 THEN BEGIN IF condição2 THEN BEGIN comando1; END ELSE BEGIN comando2; END; END;
44. 44. 41 Se quiséssemos realmente que o ELSE estivesse relacionado com o primeiro IF, então a forma correta de se escrever seria: IF condição1 THEN BEGIN IF condição2 THEN BEGIN comando1; END; END ELSE BEGIN comando2; END; Este tipo de erro lógico em um programa, em geral, é difícil de se detectar. Ele costuma ser chamado de armadilha dos IF's encaixados. 4.2.1 EXERCÍCIOS DE FIXAÇÃO 1a Questão) Escreva o programa referente ao uxograma da gura 4.1. Figura 4.1: Fluxograma A 2a Questão) Para os valores (a=5) (b=7) e (c=9), assinale com X a seqüência de execução dos Algoritmos abaixo: a) SE a = 5 E b = 7 Entao ( ) c: c + 1 ( ) senão ( ) c := c - 1; ( ) fim-se ( )
45. 45. 42 b) se a = 5 e b 7 entao ( ) c := 1 ( ) senao ( ) se c = 8 entao ( ) c := 2 ( ) senao ( ) c := 4 ( ) fim-se ( ) fim-se ( ) 3a Questão) Escreva o programa referente ao uxograma da gura 4.2.2. Figura 4.2: Fluxograma B 4a Questão) Para as saídas, considere os seguintes valores: A=2, B=3, C=5, D=9 e E=6. a) Resposta: _______ Se não D 5 entao X := (A + B) * D; senao X := (A - B) / C fim-se Escrever X b) Resposta: _______ Se (A 2) E (B 7) entao X := (A + 2) * (B - 2); senao
46. 46. 43 X := (A + B) / D * (C + D) fim-se Escrever X c) Resposta: ______ Se (A 2) E (B 7) entao X := (A + 2) * (B - 2) senao X := X := (A + B) * D / (C + D) fim-se Escrever X d) Resposta: ______ Se (A = 2) OU (C 1) Entao X := (A + D) / 2; senao X := D * C; fim-se Escrever X e) Resposta: ______ Se nao (A 2) ou nao (B 7) entao X := A + E; senao X := A / E; fim-se Escrever X f) Resposta: ______ Se nao (A 3) e nao (B 5) entao X := A + D; senao X := D / B fim-se Escrever X 4.2.2 EXERCÍCIOS 1a Questão) Faça um programa que leia dois números inteiros A e B da entrada padrão (teclado) e retorne o quociente da divisão entre A e B. O programa deve vericar, previamente à divisão, se o valor de B é diferente de zero. 2a Questão) Leia um valor inteiro X e diga se ele é par ou ímpar. 3a Questão) Escreva um algoritmo para receber o sexo e a idade de uma pessoa. Se a pessoa for do sexo feminino e tiver menos de 25 anos, imprimir o nome e a mensagem: ACEITA. Caso contrário, imprimir o nome e a mensagem não aceita. (Considerar para o Sexo as letras F,f,M ou m). 4a Questão)Faça um programa que leia dois números inteiros A e B da entrada padrão (teclado) e imprima o maior deles. Dê um tratamento caso estes números forem iguais. 5a Questão)Escreva um algoritmo para receber a sigla e o Estado de uma pessoa e imprimir uma das seguintes mensagens: