generated from BecoSystems/exn-adventuretxt
-
Notifications
You must be signed in to change notification settings - Fork 12
/
exN.gpt
136 lines (115 loc) · 4.66 KB
/
exN.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
/***************************************************************************
* 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 */