quarta-feira, 6 de junho de 2012

Registros - Exercícios 1 e 2

Resolução dos Problemas da Apostila de Registros


Exercício 1


1 - Faça um programa que leia as informações (iguais a do exemplo acima) de 1 funcionário e as imprima na tela. Obs. Leia as informações de um funcionário, limpe a tela e imprima as suas informações;

Algoritmo


Programa Registro;
Tipo
ficha = registro                          {DECLARACAO DO REGISTRO}
                inscrição : inteiro;
               nome : literal[30];
                rua : literal[45];
                numero : inteiro;
                cep : inteiro;
                cpf : literal[15];
                sexo : char;
                data_nasc : literal[8];
                depfimente : char;
                horas_trab : real;
             fim_registro;
Inicio
    escreva('Inscricao: '); leia (ficha.inscricao);
    escreva('Nome: '); leia (ficha.nome);
    escreva('Rua: '); leia (ficha.rua);
    escreva('Numero: '); leia (ficha.numero);      {LEITURA DOS CAMPOS}
    escreva('CEP: '); leia (ficha.cep);                  { DO REGISTRO}
    escreva('CPF: '); leia (ficha.CPF);
    escreva('Sexo: '); leia (ficha.sexo);
    escreva('Data de Nascimento: '); leia (ficha.data_nasc);
    escreva('Tem depfimentes (S/N): '); leia (ficha.depfimente);
    escreva('Horas Trabalhadas: '); leia (ficha.horas_trab);

    escreva ('FICHA LIDA');
    escreva ('Inscricao: ',ficha.inscricao);
    escreva ('Nome: ',ficha.nome);                     {IMPRESSAO}
    escreva ('Rua: ',ficha.rua);               
    escreva ('Numero: ',ficha.numero);
    escreva ('CEP: ',ficha.cep);
    escreva ('CPF: ',ficha.CPF);
    escreva ('Sexo: ',ficha.sexo);
    escreva ('Data de Nascimento: ',ficha.data_nasc);
    escreva ('Tem depfimentes (S/N): ',ficha.depfimente);
    escreva ('Horas Trabalhadas: ',ficha.horas_trab);
Fim.

Código implementado no Dev-C++ 4.9.9.2


#include <iostream>
#include <stdio.h>

using namespace std;

struct cadastro //declaração do tipo registro
       {
       char sexo, dep, nome[30], rua[45], cpf[15], nascimento[8];
       float htrabalhadas;
       int inscricao, numero, cep;
       };

int main()
{
    cadastro ficha; //variável ficha do tipo registro
    cout << "Inscricao: "; //leitura dos campos do registro ficha
    cin >> ficha.inscricao;
    cin.sync(); //sincronização do buffer de entrada de dados
    cout << "Nome: ";
    gets(ficha.nome);
    cout << "Rua: ";
    gets(ficha.rua);
    cout << "Numero: ";
    cin >> ficha.numero;
    cout << "CEP: ";
    cin >> ficha.cep;
    cout << "CPF: ";
    cin >> ficha.cpf;
    cout << "Sexo: ";
    cin >> ficha.sexo;
    cout << "Data de nascimento: ";
    cin >> ficha.nascimento;
    cout << "Dependentes(s/n): ";
    cin >> ficha.dep;
    cout << "Horas trabalhadas: ";
    cin >> ficha.htrabalhadas;
    system("cls");
    cout << "FICHA LIDA" << "\n\n"; //impressão dos campos do registro ficha
    cout << "Inscricao: " << ficha.inscricao << endl;
    cout << "Nome: " << ficha.nome << endl;
    cout << "Rua: " << ficha.rua << endl;
    cout << "Numero: " << ficha.numero << endl;
    cout << "CEP: " << ficha.cep << endl;
    cout << "CPF: " << ficha.cpf << endl;
    cout << "Sexo: " << ficha.sexo << endl;
    cout << "Data de nascimento: " << ficha.nascimento << endl;
    cout << "Dependentes: " << ficha.dep << endl;
    cout << "Horas trabalhadas: " << ficha.htrabalhadas << "\n\n";
    system("PAUSE");
}

Exercício 2


2 - Escrever um programa que, dados 20 CÓDIGOS DE PROFISSÃO, emita o NOME das profissões correspondentes. Como estrutura de dados, devemos ter um vetor com 20 posições, onde cada posição refere-se à um registro com dois campos: CODIGO e NOME.

Algoritmo


Programa Profissoes;
Tipo
            registro = REGISTRO                {TIPO QUE REPRESENTA}
                        codigo: inteiro;                {A TABELA DE CODIGOS E PROFISSOES}
                        nome: literal[8];
            FIM;
Var
     tabela: vetor[1..20] de registro;
     codigodesejado, i, k: inteiro;
Inicio
    Escreva('LEITURA DOS CODIGOS DAS PROFISSOES');
    Para iß1 até 20 Faça
    Inicio
        escreva('codigo  : ');
        leia (tabela[i].codigo);
        escreva('nome    : ');
        leia (tabela[i].nome);
    Fim;
    escreva ('IDENTIFICACAO DE CODIGOS DAS PROFISSOES');
    Para iß1 até 10 Faça
    Inicio
        escreva('codigo  desejado: ');
        leia (codigodesejado);
        kß1;
        Enquanto (tabela[k].codigo <> codigodesejado) AND (k<20) do
            k<--k+1;
        Se tabela[k].codigo = codigodesejado então
        Inicio
            escreva ('nome: ',tabela[k].nome);
        Fim
        Senão
        Inicio
            escreva ('CODIGO INVALIDO');
        Fim;
    Fim;
Fim.

Código implementado no Dev-C++ 4.9.9.2


#include <iostream>
#include <stdio.h>

using namespace std;

struct profissao //declaração do tipo registro
       {
       int codigo;
       char nome[15];
       };

int main()
{
    profissao tabela[20]; //vetor tabela do tipo profissão
    int i, k, codigodesejado;
    char codigocerto;
    cout << "LEITURA DOS CODIGOS DAS PROFISSOES" << "\n\n";
    for (i = 0; i < 20; i++) //leitura dos dados das profissões
        {
        cout << "Codigo: ";
        cin >> tabela[i].codigo;
        cout << "Nome: ";
        cin >> tabela[i].nome;
        }
    cout << "\n" << "IDENTIFICACAO DE CODIGOS DAS PROFISSOES" << "\n\n";
    for (i = 0; i < 20; i++) //identificação dos códigos das profissões
        {
        cout << "Codigo desejado: ";
        cin >> codigodesejado;
        cout << "\n";
        codigocerto = 'n';
        k = 0;
        while (k < 20)
            {
            if (tabela[k].codigo == codigodesejado) //impressão dos resultados
               {
               codigocerto = 's';
               cout << "Nome: " << tabela[k].nome;
               }
            k = k + 1;
            }
        if (codigocerto == 'n') //verificação de código inexistente
           {
           cout << "CODIGO INVALIDO";
           }
        cout << "\n\n";
        }
    system("PAUSE");
}

Nenhum comentário:

Postar um comentário