0% acharam este documento útil (0 voto)
6 visualizações11 páginas

Aumento Salarial em Programa Pascal

Este documento apresenta uma dissertação para obtenção do grau de mestre em Engenharia Informática, focando no desenvolvimento de um programa em Pascal para calcular reajustes salariais de 1000 funcionários com base em suas categorias. O programa lê dados dos funcionários, calcula os novos salários conforme percentuais definidos e exibe os resultados. A estrutura do código é modular, utilizando funções e procedimentos para organizar as operações de leitura, cálculo e apresentação dos dados.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações11 páginas

Aumento Salarial em Programa Pascal

Este documento apresenta uma dissertação para obtenção do grau de mestre em Engenharia Informática, focando no desenvolvimento de um programa em Pascal para calcular reajustes salariais de 1000 funcionários com base em suas categorias. O programa lê dados dos funcionários, calcula os novos salários conforme percentuais definidos e exibe os resultados. A estrutura do código é modular, utilizando funções e procedimentos para organizar as operações de leitura, cálculo e apresentação dos dados.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

FACULDADE DE CIÊNCIAS

Departamento de Matemática e Informática

Trabalho de Licenciatura em
[Ciencias de Informacao Geografica]

Dissertação para obtenção do Grau de Mestre em


[Engenharia Informática]

[Desenvolvimento de Programa]

Autores:

 Carla Mugabe.
 Maida Germano Tembe.
 Shelcia Djessminy Nhantumbo.

Maputo, [Maio de 2025]

1
FACULDADE DE CIÊNCIAS
Departamento de Matemática e Informática

Trabalho de Licenciatura em
[Ciências de Informação Geográfica]

Dissertação para obtenção do Grau de Mestre em


[Engenharia Informática]

[Desenvolvimento de Programa]

Trabalho de Pesquisa e programação


Docente: Orlando Zacarias

Unidade Curricular: Introdução a Informática

Autores:

 Carla Mugabe.
 Maida Germano Tembe.
 Shelcia Djessminy Nhatumbo.

Maputo, [Maio de 2025]

2
Índice

Problema..........................................................................................................................................1

Descrição Geral...............................................................................................................................1

Estrutura de Dados...........................................................................................................................1

Variáveis Globais.............................................................................................................................2

Procedimentos e Funções................................................................................................................2

 Função ObterPercentualAumento.............................................................................2

 Procedimento LerDados....................................................................................................2

 Procedimento CalcularReajuste.................................................................................2

 Procedimento MostrarResultados..............................................................................2

Corpo Principal do Programa..........................................................................................................3

Apresentação dos resultados............................................................................................................3

Tabela de classificação....................................................................................................................4

Código..............................................................................................................................................5

3
Problema
Uma empresa irá dar um aumento de salário aos seus funcionários de acordo com a categoria de
cada empregado. O aumento seguirá a seguinte regra:

a) Funcionários das categorias A, C, F, e H ganharão 10% de aumento sobre o salário

b) Funcionários das categorias B, D, E, I J e T ganharão15% de aumento sobre o salário

c) Funcionários das categorias K e R ganharão 25% de aumento sobre o salário

d) Funcionários das categorias L, M, N, O, P, Q, R e S ganharão 35% de aumento sobre o salário

e) Funcionários das categorias U, V, X, Y, W e Z ganharão 50% de aumento sobre o salário.

Faça um programa que Escreva Nome, categoria e salário reajustado de cada funcionário.
Considere 1000 funcionários em geral, na empresa.

Descrição Geral
Este programa Pascal é projectado para processar informações de um conjunto de 1000
funcionários de uma empresa, com o objectivo de calcular o reajuste salarial de cada um
conforme a sua categoria profissional. Cada registo de funcionário contém o nome, a categoria e
o salário actual. O programa executa operações como a leitura desses dados, o cálculo do novo
salário com base em percentuais definidos por categoria, e a exibição do nome, categoria e
salário reajustado de cada funcionário. Para isso, são utilizadas estruturas como vetores,
procedimentos e funções, garantindo uma organização clara e modular do código.

Estrutura de Dados
O programa define uma constante NUMERO_DE_FUNCIONARIOS, que estabelece o número máximo
de funcionários que podem ser processados, fixado em 1000. Para armazenar os dados, são
definidos três vetores (arrays): ListaNomes, que contém os nomes dos funcionários como
strings; ListaCategorias, que armazena as categorias como caracteres; e dois vetores do tipo
ListaSalarios, usados para guardar, respectivamente, os salários originais e os salários
reajustados de cada funcionário. Cada vetor tem índices de 1 até NUMERO_DE_FUNCIONARIOS. A
estrutura de dados é simples e utiliza apenas tipos básicos e arrays paralelos.

1
Variáveis Globais
O vetor nomes do tipo ListaNomes armazena os nomes de todos os funcionários. O vetor
categorias do tipo ListaCategorias guarda a categoria de cada funcionário, representada por
um caractere. Os vetores salariosOriginais e salariosReajustados, ambos do tipo
ListaSalarios, armazenam, respectivamente, os salários antes e depois do reajuste. A variável
i é utilizada como índice de controlo em diversas estruturas de repetição ao longo do programa,
especialmente nos laços de leitura, cálculo e exibição dos dados. Essas variáveis são declaradas
de forma global para permitir o seu uso em diferentes procedimentos e funções do programa.

Procedimentos e Funções
 Função ObterPercentualAumento
Recebe uma categoria como parâmetro e retorna o percentual de aumento
correspondente, conforme os critérios definidos pelo problema. A função garante que a
letra da categoria seja tratada em maiúscula para evitar erros de comparação.

 Procedimento LerDados
Responsável por ler os dados de entrada dos funcionários, incluindo o nome, a categoria e
o salário. Esses dados são armazenados nos vetores globais correspondentes.

 Procedimento CalcularReajuste
Calcula o salário reajustado de cada funcionário, aplicando o percentual de aumento
obtido pela função ObterPercentualAumento. Os novos salários são armazenados no
vetor salariosReajustados.

 Procedimento MostrarResultados
Exibe, para cada funcionário, seu nome, categoria e salário reajustado. Este procedimento
é responsável pela saída final do programa (output).

2
Corpo Principal do Programa
O corpo principal do programa começa chamando o procedimento LerDados, que realiza a
leitura e o armazenamento das informações dos 1000 funcionários, incluindo nome, categoria e
salário actual. Em seguida, é chamado o procedimento CalcularReajuste, responsável por
aplicar os percentuais de aumento conforme a categoria e calcular o novo salário de cada
funcionário. Por fim, o procedimento MostrarResultados é chamado para exibir, para cada
funcionário, o nome, a categoria e o salário reajustado. O fluxo do programa é sequencial e
organizado, garantindo clareza na execução das etapas de entrada, processamento e saída de
dados.

Apresentação dos resultados

Fig: Exemplo de execução do programa para 2 funcionários

3
Tabela de classificação

Nome do Estudante Classificação Quantitativa Assinatura

Carla Mugabe 32%

Maida Tembe 31%

Shelcia Nhatumbo 37%

4
Código
program Aumento_Salarial_Dos_Funcionarios;

uses crt;

const

NUMERO_DE_FUNCIONARIOS = 2;

type

ListaNomes = array[1..NUMERO_DE_FUNCIONARIOS] of string;

ListaCategorias = array[1..NUMERO_DE_FUNCIONARIOS] of char;

ListaSalarios = array[1..NUMERO_DE_FUNCIONARIOS] of real;

var

nomes: ListaNomes;

categorias: ListaCategorias;

salariosOriginais, salariosReajustados: ListaSalarios;

i: integer;

function ObterPercentualAumento(categoria: char): real;

begin

categoria := upcase(categoria);

case categoria of

'A', 'C', 'F', 'H': ObterPercentualAumento := 0.10;

'B', 'D', 'E', 'I', 'J', 'T': ObterPercentualAumento := 0.15;

'K', 'R': ObterPercentualAumento := 0.25;

'L', 'M', 'N', 'O', 'P', 'Q', 'S': ObterPercentualAumento := 0.35;

'U', 'V', 'W', 'X', 'Y', 'Z': ObterPercentualAumento := 0.50;

5
else

ObterPercentualAumento := 0.0;

end;

end;

procedure LerDados(var nomes: ListaNomes; var categorias: ListaCategorias; var salarios:


ListaSalarios);

begin

WriteLn(' ======== Registo de Funcionarios =========');

writeln('');

for i := 1 to NUMERO_DE_FUNCIONARIOS do

begin

writeln(' Funcionario ', i);

writeln;

write(' Nome: ');

readln(nomes[i]);

write(' Categoria: ');

readln(categorias[i]);

write(' Salario: ');

readln(salarios[i]);

writeln;

end;

end;

6
procedure CalcularReajuste(salarios: ListaSalarios; categorias: ListaCategorias; var reajustados:
ListaSalarios);

var

aumento: real;

begin

for i := 1 to NUMERO_DE_FUNCIONARIOS do

begin

aumento := ObterPercentualAumento(categorias[i]);

reajustados[i] := salarios[i] + (salarios[i] * aumento);

end;

end;

procedure MostrarResultados(nomes: ListaNomes; categorias: ListaCategorias; reajustados:


ListaSalarios);

begin

writeln(' ======= Lista de Funcionarios com Salario Reajustado =========');

WriteLn;

for i := 1 to NUMERO_DE_FUNCIONARIOS do

begin

writeln(' Funcionario ', i);

writeln(' Nome: ', nomes[i]);

writeln(' Categoria: ', categorias[i]);

writeln(' Salario Reajustado: ', reajustados[i]:0:2);

writeln;

7
end;

end;

begin

clrscr;

LerDados(nomes, categorias, salariosOriginais);

CalcularReajuste(salariosOriginais, categorias, salariosReajustados);

MostrarResultados(nomes, categorias, salariosReajustados);

readln;

end.

Você também pode gostar