forked from BecoSystems/poli-prog1-advtxt-exn-adventuretxt
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ex11.gpt
165 lines (139 loc) · 5.53 KB
/
ex11.gpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/***************************************************************************
* exN.gpt Version 20240425.130227 *
* *
* Adventure Text *
* Copyright (C) 2024 by Ruben Carlo Benante *
***************************************************************************
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************
* To contact the author, please write to: *
* Ruben Carlo Benante *
* Email: [email protected] *
* Webpage: http://www.beco.cc *
* Phone: +55 (81) 3184-7555 *
***************************************************************************/
/*
* Instrucoes para compilar:
* $gpt exN.gpt -o exN.gpt.x
*/
/* ---------------------------------------------------------------------- */
/* algoritmo */
algoritmo exemplo;
/* ---------------------------------------------------------------------- */
/* variáveis */
variáveis
idade : inteiro;
salario, r : real;
escolha : caractere;
nome : literal;
resultado : lógico;
tabuleiro : matriz[3][3] de inteiros;
i, j : inteiro;
fim-variáveis
/* ---------------------------------------------------------------------- */
/* rotina principal */
início
imprima("Qual o seu nome? ");
nome := leia();
imprima(nome, ", digite sua idade: ");
idade := leia();
se idade >= 18 então
se idade < 60 então
imprima("adulto, liberado!");
senão
imprima("idoso, vaga especial.");
fim-se
senão
imprima("menor de idade, entrada recusada!");
retorne 0;
fim-se
imprima("Quer continuar? (s/n)");
escolha := leia();
se escolha = 'n' ou escolha = 'N' então
retorne 0;
fim-se
imprima("Qual o seu salário?");
salario := leia();
salario := salario + salario * 1.5;
imprima("Seu novo salário após o aumento: ", salario);
resultado := verdadeiro;
imprima("Calculando descontos...");
enquanto resultado = verdadeiro faça
salario := salario * 0.9;
imprima("Novo salário: ", salario);
resultado := (salario > 100.1);
fim-enquanto
imprima("Agora vou calcular a raiz quadrada de 9 para você:");
r := raiz(9);
imprima("A raiz de 9 é: ", r);
/* preenchendo a matriz tabuleiro */
imprima("Preenchendo tabuleiro");
para i de 0 até 2 faça
para j de 0 até 2 faça
tabuleiro[i][j] := i + j;
fim-para
fim-para
/* imprimindo o tabuleiro */
imprime_matriz(tabuleiro);
fim
/* ---------------------------------------------------------------------- */
/* funções de usuário */
/* ---------------------------------------------------------------------- */
/* Encontra a raiz usando o método Newton-Raphson */
função raiz(num: real) : real
xn : real;
início
xn := 3.0;
retorne xn;
fim
/* ---------------------------------------------------------------------- */
/* Imprime matriz */
função imprime_matriz(tabuleiro : matriz[3][3] de inteiros)
i, j : inteiro;
início
para i de 0 até 2 faça
para j de 0 até 2 faça
imprima("tabuleiro posição ",i,",",j," é ", tabuleiro[i][j]);
fim-para
fim-para
fim
/* ---------------------------------------------------------------------- */
/* rodapé de configuração do vim */
/* vi: set ai et ts=4 sw=4 tw=0 wm=0 fo=croql : C config for Vim modeline */
/* Template by Dr. Beco <rcb at beco dot cc> Version 20160612.142044 */
/* ---------------------------------------------------------------------- */
// Função que simula o uso da buzina
função UsarBuzina:
escreva("Você usou a buzina! Ela é mágica e mandou o Batman para outra dimensão \n");
escreva("Mas ele estava podre e quebra quando você tenta usar - O Batman pegou você!\n");
início
inteiro escolha
escreva("O Coringa está tentando fugir do Batman!/n");
escreva ("Escolha um objeto para usar:\n");
escreva("1. Buzina.\n")
escreva("2. taco de Beisebol \n");
leia(escolha):
// Estrutura de escolha para decidir a ação do usuário
escolha:
caso 1:
usarbuzina:
pare
caso 2:
usarTaco:
pare
// Mensagem de erro para opção inválida
default:
escreva("Escolha inválida! O Batman te pega enquantop você hesita!\n");
fim