Mostrando postagens com marcador Programação de Computadores. Mostrar todas as postagens
Mostrando postagens com marcador Programação de Computadores. Mostrar todas as postagens

segunda-feira, 27 de junho de 2016

Programação de Computadores - 27/06/2016

Programação de Computadores - 27/06/2016

Exercícios

Questão 1)
Suponha a existência de um programa que realiza o controle das vendas de passagens de um ônibus mapeando os acentos disponíveis e os acentos vendidos como no esquema, sendo que os acentos disponíveis possuem o valor 0 (zero), e os acentos ocupados a idade da pessoa que está ocupando o acento:



a) Faça uma função que carrega a matriz com os dados de ocupação do ônibus a partir de um arquivo preexistente.
b) Faça uma função que grave a matriz com os dados de ocupação do ônibus em um arquivo.
c) Faça uma função que realiza a reserva de um acento dados acento (linha), fila (coluna) e idade.
d) Faça uma função que retorne a posição (acento e fila) da pessoa mais velha no ônibus.
e) Faça uma função que retorne quanto acentos estão disponíveis na janela.
f) Faça uma função que retorne a média das idades das pessoas no ônibus.

Resposta minha (finalizada - funções 3, 4, 5 e 6 testadas no CodeBlocks):

#include <iostream>
#include <fstream>
#include <cstdlib>


using namespace std;

int assentos[4][21];
int i=0,j=0;
int funcao=0;
int fila=0;
int coluna=0;
int idade=0;
int assentoslivresjanelas=0;
int passageiros=0;
int idademedia=0;

// resposta da letra a: função que carrega a matriz com os dados de ocupacao do onibus a partir de um arquivo preexistente
void leitura(){

ifstream le_tabela("onibus.txt");
    for (i=0;i<4;i++){
        for (j=0;j<21;j++){
            le_tabela>>assentos[i][j];
        } // fechamento do for
    }// fechamento do for

le_tabela.close();

} // fechamento do void leitura

// resposta da letra b: função que grava a matriz com os dados de ocupacao do onibus em um arquivo
void gravacao(){

ofstream grava_matriz("dadosdoonibus.txt");
    for (i=0;i<4;i++){
        for (j=0;j<21;j++){
            grava_matriz<<assentos[i][j]<<endl;
        } // fechamento do for
    }// fechamento do for

grava_matriz.close();
cout<<"** Matriz gravada com sucesso. Arquivo: dadosdoonibus.txt **"<<endl<<endl;
cout<<"Retornando ao menu principal"<<endl<<endl;
} // fechamento do void gravacao


// resposta da letra c: função que realiza reserva
void reserva(){

    cout<<" || Reserva de Assentos || "<<endl<<endl;
    cout<<"** digite '-1' para sair da funcao**"<<endl<<endl;
    cout<<"Insira a linha (fila) desejada"<<endl<<endl;
    cin>>fila;
    cout<<"Insira a coluna desejada"<<endl<<endl;
    cin>>coluna;

    if (assentos[fila-1][coluna-1]==0){
        cout<<"Digite a idade do passageiro"<<endl<<endl;
        cin>>idade;
        assentos[fila-1][coluna-1]=idade;
        cout<<"** Assento reservado com sucesso **"<<endl<<endl;
    } // fechamento do if

    else if (assentos[fila-1][coluna-1]!=0){
        cout<<"** Assento ocupado **"<<endl<<endl;
        cout<<"** Se desejar tentar reservar outro assento, entre no menu reserva novamente **"<<endl<<endl;
    } // fechamento do if

} // fechamento do void reserva


void pessoamaisvelha(){

idade=0;

    for (i=0;i<4;i++){
        for (j=0;j<21;j++){
            if (idade<assentos[i][j]){
                idade=assentos[i][j];
                fila=i;
                coluna=j;
            }
        } // fechamento do for
    }// fechamento do for
    cout<<"A pessoa mais velha no onibus tem "<<idade<<" anos e esta no assento posicionado na fila "<<fila<<" e na coluna "<<coluna<<" ."<<endl<<endl;

} // fechamento do void pessoamaisvelha


void janelaslivres(){

assentoslivresjanelas=0;

    // Para a lateral esquerda do onibus
    for (j=0;j<21;j++){
            if (assentos[0][j]==0){
                assentoslivresjanelas++;
            }
    }// fechamento do for

    // Para a lateral direita do onibus
    for (j=0;j<21;j++){
            if (assentos[3][j]==0){
                assentoslivresjanelas++;
            }
    }// fechamento do for

    cout<<"Existem "<<assentoslivresjanelas<<" assentos livres em janelas no onibus."<<endl<<endl;

} // fechamento do void janelaslivres


void mediaidades(){

idade=0;
passageiros=0;
idademedia=0;

    for (i=0;i<4;i++){
        for (j=0;j<21;j++){
            if (assentos[i][j]!=0){
                idade=idade+assentos[i][j];
                passageiros++;
            }
        } // fechamento do for
    }// fechamento do for
    idademedia=idade/passageiros;
    cout<<"A idade media dos passageiros e: "<<idademedia<<" anos."<<endl<<endl;

} // fechamento do void mediaidades


int main()
{
    funcao=0;
    cout << "|| Controle de vendas de passagens ||" << endl<<endl;
    while (funcao!=-1){
        cout<<"|| Menu principal ||"<<endl<<endl;
        cout<<"Digite o numero da funcao desejada ou '-1' para encerrar"<<endl<<endl;
        cout<<"|| Funcao 1: carrega a matriz com os dados de ocupacao do onibus a partir de um arquivo preexistente ||"<<endl<<endl;
        cout<<"|| Funcao 2: grava a matriz com os dados de ocupacao do onibus em um arquivo ||"<<endl<<endl;
        cout<<"|| Funcao 3: realiza reserva ||"<<endl<<endl;
        cout<<"|| Funcao 4: retornar a posicao do assento (fila e coluna) da pessoa mais velha no ônibus ||"<<endl<<endl;
        cout<<"|| Funcao 5: retorna o numero de assentos disponiveis nas janelas ||"<<endl<<endl;
        cout<<"|| Funcao 6: retorna a media das idades das pessoas no onibus ||"<<endl<<endl;
        cin>>funcao;
        if (funcao==1){
            leitura();
        } // fechamento do if
        if (funcao==2){
            gravacao();
        } // fechamento do if
        if (funcao==3){
            reserva();
        } // fechamento do if
        if (funcao==4){
            pessoamaisvelha();
        } // fechamento do if
        if (funcao==5){
            janelaslivres();
        } // fechamento do if
        if (funcao==6){
            mediaidades();
        } // fechamento do if
    } // fechamento do while
    return 0;
}


Questão 2)
O que o programa a seguir mostra na tela após ser executado?

#include<cstdlib>
#include<iostream>
using namespace std;
int selecao (intx,inty){
 int M[10][10],i,j;
 for(i=0;i<5;i++){
  for(j=0;j<5;j++){
   M[i][j]=i+j;
  }
 }
 return M[x][y];
}
int main{
 int P;
 P=selecao(5,6);
 cout<<P;
 return 0;
}

Resposta minha:

Como a matriz só é preenchida até a posição [4][4], o ponto P receberá o valor de vazio, caso a matriz esteja limpa na posição [5][6] antes da execução do programa.

Lucas T R Freitas

Programação de Computadores - 27 de Junho de 2016

Programação de Computadores - 27 de Junho de 2016

Resolução de exercícios:

Questão única:

Você foi convidado pelo professor de programação para ajudar no controle dos registros acadêmicos e para isso deve fazr um programa em c++ (construindo uma função para cada item) que permita:

a) Ler a nota de 40 alunos e gravá-los em um arquivo externo.
b) Recuperar os dados do arquivo gravado inserindo em 2 vetores distintos, um primeiro contendo as notas maiores ou iguais a 5,0 e um segundo contendo as notas menores que 5,0.
c) Imprimir as notas armazenadas no primeiro vetor e as armazenadas no segundo vetor separadamente (sem "lixo").
d) Imprimir a quantidade de notas do segundo vetor que estão entre 4,0 e 5,0.
e) Imprimir uma mensagem dizendo se a quantidade de notas do primeiro vetor está acima ou abiaxo de 6,0.


Resposta minha (letra a pronto e testada no codeblocks):

#include <iostream>
#include <fstream>
#include <cstdlib>


using namespace std;

// Declarando e zerando as variáveis
float notadoaluno=0;
int funcao=0;
int sairfuncao=0;
int i=0;
int contmaior5=0;
int contmenor5=0;
int notasentre4e5=0;
float notamaiorigual5[40];
float notamenor5[40];

// resposta da letra a: Ler a nota de 40 alunos e gravá-los em um arquivo externo.
void leitura(){
ofstream gravanotadoaluno("notas.txt");

sairfuncao=0;
cout<<endl<<endl<<"|| Bem vindo a funcao de gravacao das notas nos alunos ||"<<endl<<endl;

 for (i=0;i<40;i++){
    if (sairfuncao!=-1){
        cout<<"**Informe a nota do aluno || "<<i+1<<" || ou digite '-1' para sair.**"<<endl;
        cin>>sairfuncao;
        if (sairfuncao!=-1){
            notadoaluno=sairfuncao;
            cout<<endl<<"A nota do aluno "<<i+1<<" e: "<<notadoaluno<<endl<<endl<<endl;
            gravanotadoaluno<<notadoaluno<<endl;
        } // fechamento do if
    } // fechamento do if
} // fechamento do for
gravanotadoaluno.close();

cout<<endl<<endl;
cout<<"Retornando ao menu principal."<<endl;
cout<<endl<<endl<<endl;

} // fechamento do void leitura


// resposta da letra b: Separar as notas dos alunos em dois vetores: notas maiores ou iguais a 5 e notas menores que 5
void separanotas(){
ifstream separar("notas.txt");

sairfuncao=0;
contmaior5=0;
contmenor5=0;
cout<<endl<<endl<<"|| Separando as notas dos alunos em dois vetores: notas maiores ou iguais a 5 e notas menores que 5 ||"<<endl<<endl;

 for (i=0;i<40;i++){
    if (sairfuncao!=-1){
        separar>>notadoaluno;
        if (notadoaluno>=5){
            notamaiorigual5[contmaior5]=notadoaluno;
            contmaior5++;
        } // fechamento do if
        if (notadoaluno<5){
            notamenor5[contmenor5]=notadoaluno;
            contmenor5++;
        } // fechamento do if
    } // fechamento do if
} // fechamento do for

cout<<endl<<endl;
cout<<"Notas separadas."<<endl;
cout<<endl<<endl;
cout<<"Retornando ao menu principal."<<endl;
cout<<endl<<endl<<endl;

} // fechamento do void separanotas


// resposta da letra c: Imprimir as notas dos vetores
void imprimenotas(){
ifstream separar("notas.txt");

sairfuncao=0;
cout<<endl<<endl<<"|| Separando as notas dos alunos em dois vetores: notas maiores ou iguais a 5 e notas menores que 5 ||"<<endl<<endl;

cout<<"Notas maiores ou iguais a cinco: "<<contmaior5<<" notas."<<endl;
for (i=0;i<contmaior5;i++){
    if (sairfuncao!=-1){
        cout<<"A nota na posicao "<<i+1<<" e: "<<notamaiorigual5[i]<<endl;
    } // fechamento do if
} // fechamento do for

cout<<endl<<endl<<endl;
cout<<"Notas menores que cinco: "<<contmenor5<<" notas."<<endl;
for (i=0;i<contmenor5;i++){
    if (sairfuncao!=-1){
        cout<<"A nota na posicao "<<i+1<<" e: "<<notamenor5[i]<<endl;
    } // fechamento do if
} // fechamento do for

cout<<endl<<endl;
cout<<"Notas impressas."<<endl;
cout<<endl<<endl;
cout<<"Retornando ao menu principal."<<endl;
cout<<endl<<endl<<endl;

} // fechamento do void imprimenotas


// resposta da letra d: Imprimir as notas entre 4 e 5 do segundo vetores
void imprimenotasentre4e5(){

sairfuncao=0;
cout<<endl<<endl<<"|| Contando as notas entre 4 e 5 dos alunos entre as notas menores que 5 ||"<<endl<<endl;

for (i=0;i<contmenor5;i++){
    if (notamenor5[i]>=4 && notamenor5[i]<5){
        notasentre4e5++;
    } // fechamento do if
} // fechamento do for

cout<<endl<<endl;
cout<<"A quantidade de notas entre 4 e 5 e: "<<notasentre4e5<<"."<<endl;
cout<<endl<<endl;
cout<<"Retornando ao menu principal."<<endl;
cout<<endl<<endl<<endl;

} // fechamento do void imprimenotasentre4e5

// resposta da letra e: Imprimir uma mensagem dizendo se a quantidade de notas do primeiro vetor está acima ou abaixo de 6,0
void imprimenotas6(){

sairfuncao=0;
if (contmaior5<6){
    cout<<endl<<endl<<"|| A quantidade de notas do primeiro vetor esta abaixo de 6 ||"<<endl<<endl;
}

if (contmaior5>6){
    cout<<endl<<endl<<"|| A quantidade de notas do primeiro vetor esta acima de 6 ||"<<endl<<endl;
}

cout<<endl<<endl;
cout<<"Retornando ao menu principal."<<endl;
cout<<endl<<endl<<endl;

} // fechamento do void imprimenotas6


int main()
{

    cout<<endl<<endl << "-- Bem-vindo ao programa de registros academicos --" << endl<<endl;
    cout<<endl;
    funcao=100; // mudando o valor da variável sair
    while (funcao!=-1){
        cout<<"|| Menu de funcoes ||"<<endl;
        cout<<endl;
        cout<<endl;
        cout<<"|| Registros Academicos - Funcoes ||"<<endl<<endl;
        cout<<"|| Funcao (1): Ler as notas dos 40 alunos e gravar em um arquivo txt externo. ||"<<endl<<endl;
        cout<<"|| Funcao (2): Separar as notas dos alunos em dois vetores: notas maiores ou iguais a 5 e notas menores que 5. ||"<<endl<<endl;
        cout<<"|| Funcao (3): Imprimir as notas separadas em vetores: notas maiores ou iguais a 5 e notas menores que 5. ||"<<endl<<endl;
        cout<<"|| Funcao (4): Imprimir a quantidade de notas que estao entre 4 e 5. ||"<<endl<<endl;
        cout<<"|| Funcao (5): Imprimir as notas separadas em vetores: notas maiores ou iguais a 5 e notas menores que 5. ||"<<endl<<endl;
        cout<<endl;
        cout<<"Informe o numero da funcao desejada ou digite -1 para sair"<<endl<<endl;
        cout<<endl<<endl<<endl;
        cin>>funcao;
        if (funcao==1){
            leitura();
        }// fechamento do if
        if (funcao==2){
            separanotas();
        }// fechamento do if
        if (funcao==3){
            imprimenotas();
        }// fechamento do if
        if (funcao==4){
            imprimenotasentre4e5();
        }// fechamento do if
        if (funcao==5){
            imprimenotas6();
        }// fechamento do if
    } // fechamento do while
    return 0;
}


Lucas T R Freitas

quinta-feira, 23 de junho de 2016

Trabalho em sala - Exercício para fazer em dupla - Sistema Gerenciador de Cinema

Trabalho em sala - Exercício para fazer em dupla - Sistema Gerenciador de Cinema


Resposta minha (dupla Lucas e Stéfani) - testado e funcionando - menus ficaram esquisitos:

#include <iostream>


using namespace std;

int main()
{
int i=0,j=0, menup=0, sair=0;

string mat [15][10];

for (i=0;i<15;i++){
  for (j=0;j<10;j++){
    mat[i][j]="Vago";
  }
}

while (sair!=5){

    cout <<" *_*_*_*_*_*_*_*_*_*_*_*_*_* "<< endl;
    cout <<" *      MENU PRINCIPAL     * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *  1- Reserva             * "<< endl;
    cout <<" *  2- Compra              * "<< endl;
    cout <<" *  3- Mapa de cadeiras    * "<< endl;
    cout <<" *  4- Arrecadação total   * "<< endl;
    cout <<" *  5- Sair                * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *_ _ _ _ _ _ _ _ _ _ _ _ _* "<< endl;
    cout <<" * * * * * * * * * * * * * * "<< endl;
    cout << "Digite a opção desejada"<<endl ;
    cin>>menup;

if (menup==1){

}
if (menup==2){

string reserva() {
    cout <<" *_*_*_*_*_*_*_*_*_*_*_*_*_* "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *     2- COMPRA           * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *   Informe a fila:       * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *   Informe a cadeira:    * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *   0_Retornar ao menu    * "<< endl;
    cout <<" *_ _ _ _ _ _ _ _ _ _ _ _ _* "<< endl;
    cout <<" * * * * * * * * * * * * * * "<< endl;


 }
}
if (menup==3){

string reserva() {
    cout <<" *_*_*_*_*_*_*_*_*_*_*_*_*_* "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *       3- MOSTRAR        * "<< endl;
    cout <<" *           MAPA          * "<< endl;
    cout <<" *            DE           * "<< endl;
    cout <<" *         CADEIRAS        * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *   0_Retornar ao menu    * "<< endl;
    cout <<" *_ _ _ _ _ _ _ _ _ _ _ _ _* "<< endl;
    cout <<" * * * * * * * * * * * * * * "<< endl;




}
}
if (menup==4){

string reserva() {
    cout <<" *_*_*_*_*_*_*_*_*_*_*_*_*_* "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *    4- Arrecadação       * "<< endl;
    cout <<" *         total           * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *    0_Retornar ao menu   * "<< endl;
    cout <<" *_ _ _ _ _ _ _ _ _ _ _ _ _* "<< endl;
    cout <<" * * * * * * * * * * * * * * "<< endl;





    }
    }



if (menup==5){

string reserva() {
    cout <<" *_*_*_*_*_*_*_*_*_*_*_*_*_* "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *      5- Sair            * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *                         * "<< endl;
    cout <<" *_ _ _ _ _ _ _ _ _ _ _ _ _* "<< endl;
    cout <<" * * * * * * * * * * * * * * "<< endl;


    }
    }
    return 0;
}


Lucas T R Freitas

quarta-feira, 22 de junho de 2016

Programação de Computadores - 22 de Junho de 2016

Programação de Computadores - 22 de Junho de 2016

Correção da professora

Correção dos exercícios

int main (){

int mat[6] [22];
void carrega(){
 int i,j;
 ifstream leitura ("dados.txt");
 for(i=0;i<6;i++){
  for(j=0;j<22;j++){
   leitura>>mat[i][j]
  } // fechamento do for
 } // fechamento do for
 leitura.close();
} // fechamento do void carrega

// Observação: esta função carrega a matriz com dados existentes em um arquivo externo.

void gravar_dados(){
 int i,j;
 ofstream gravar ("dadosocupacao.txt");
  for(i=0;i<6;i++){
   for(j=0;j<22;j++){
    if((mat[i][j])!=0){
     gravar<<mat[i][]<<endl;
    } // fechamento do if
   } // fechamento do for
  } // fechamento do for
  gravar.close();
} //fechamento do void gravar_dados

// Observação: esta função grava em um arquivo externo os dados dos assentos ocupados.

void reserva (){
 int i,j, opcao,idade,fila,cadeira;
 cout<<"Para reservar digite 0 - Para sair digite -1";
cin>>opcao;
while (opcao!=-1){
 cout<<"Informe a idade"<<endl;
 cin>>idade;
 cout<<"Informe a fila e a cadeira"<<endl;
 cin>>fila;
 cin>>cadeira;
 if(mat[fila][cadeira]==0){
  mat[fila][cadeira]=idade;
 } // fechamento
 else{
  cout<<"lugarocupado"<<endl;
 }
 cout<<"Para reservar digite 0 - Para sair digite -1"<<endl;
 cin>>opcao;
} // fechamento do while
} // fechamento do void reserva

//Observação: essa função permite que o usuário realize a reserva de um assento informando sua idade, fila e cadeira.

void primeira_classe(){
 int i,j,menor=0,posicaoi,posicaoj;
 for(i=0;i<6;i++){
  for(j=0;j<4;j++){
   if (mat[i][j]!=0){
    if (mat[i][j]<menor)||(menor==0){
      menor=mat[i][j];
      posicaoi=i;
      posicaoj=j;
    } // fechamento do if
   } // fechamento do if
  } // fechamento do for
 } // fechamento do for
 cout<<"A pessoa mais nova na primeira classe tem "<<menor<<" anos e está sentada na fila "<<posicaoi<<" cadeira "<<posicaoj<<endl;
} // fechamento do void primeira_classe

void corredor(){
 int i,j,corredor=0;
 for(i=2;i<4;i++){
  for(j=0;j<22;j++){
   if (mat[i][j])!=0{
    corredor++;
   } // fechamento do if
  } // fechamento do for
 } // fechamento do for
 cout<<"Total de assentos ocupados no corredor: "<<corredor<<endl;
}// fechamento do void corredor

// Observacao: esta função retorna quantas pessoas estão sentadas no corredor, isto é, fila 2 e 3.

void janela(){
 int i,j,soma=0,contjanela=0;
 for(i=0;i<1;i++){
  for(j=0;j<22;j++){
   if(mat[i][j]!=0){
    soma=soma+mat[i][j];
    contjanela++;
   }// fechamento do if
  } // fechamento do for
 } // fechamento do for
 for(i=5;i<6;i++){
  for(j=0;j<22;j++){
   if(mat[i][j]!=0){
    soma=soma+mat[i][j];
    contjanela++;
    }
  }// fechamento do for
 } // fechamento do for
 cout<<"A média das idades das pessoas sentadas na janela é: "<<soma/contjanela<<endl;

Carrega();
gravar_dados();
reserva();
primeira_classe();
corredor();
janela();
return 0;
} // fechamento do void janela

} // Fechamento do int main


Lucas T R Freitas

quarta-feira, 8 de junho de 2016

Programação de Computadores - 08 de Junho de 2016

Programação de Computadores - 08 de Junho de 2016

Exercício para fazer em dupla

*------------*------------*------------*
Sistema Gerenciador de Cinema
*------------*------------*------------*
*                                                    *
*            Menu Principal               *
*                                                    *
*   1- Reserva                                *
*   2- Compra                                *
*   3- Mapa de cadeiras                 *
*   4- Arrecadação total                *
*   5- Sair                                      *
*------------*------------*------------*
*                                  by Zirlene *
*------------*------------*------------*

1- Reserva (dentro de um quadrado)
Informe a fila
Informe a cadeira
0 - Retorna ao Menu

Obs: o cinema possui uma estrutura de 15 filas (linhas) com 10 cadeiras (colunas) em cada fila. Uma cadeira só pode ser reservada se não existir reserva para ela ou não estiver comprada. Ao realizar a reserva o sistema deve atribuir "R" para a cadeira.

2- Compra (dentro de um quadrado)
Informe a fila
Informe a cadeira
0- Retorna ao Menu

Obs: uma compra só pode ser feita se for para um lugar disponível ou reservado. Deverá ser atribuído "C" para a cadeira comprada. O valor do bilhete do cinema é de R$40,00. Se a cadeira comprada vier de uma reserva ganhará 10% de desconto.

3- Mostrar mapa cadeiras (dentro de um quadrado)
0- Retorna ao menu

Obs: Deverá mostrar a matriz 15x10 completa com os lugares disponíveis, reservados e comprados

4- Arrecadação total
0- Retorna ao menu

Obs: Deve apresentar:

  • Quantidade de reservas
  • Quantidade de entradas compradas
  • Quantidade de entradas compradas com reservas
  • Total arrecadado
5- Sair
Obs: encerrar o sistema.


Lucas T R Freitas

segunda-feira, 6 de junho de 2016

Programação de computadores - 06 de Junho de 2016

Programação de computadores - 06 de Junho de 2016

Estruturas homogêneas - Matrizes

Declaração matriz em c++

int main(){

 int dados [3] [2] // tipo de dados nome da matriz [linhas] [colunas]


} // fechamento do int main


Colocando elementos em uma matriz

int main () {

int i, j;
int mat [3] [4];

for (i=0; i<3;i++){
 for(j=0; j<4;j++){
  cin>>mat[i][j];
 } // fechamento do for
} // fechamento do for


// retirando elementos de uma matriz

for (i=0;i<3;i++){
 for (j=0;j<4;j++){
 cout<<mat[i][j]<<"|";

 } // fechamento do for
 cout<<endl;
} // fechamento do for

Return 0;
} // fechamento do int main


Exercícios
  1. Faça um algoritmo que leia uma matriz quadrada 4x4 de números inteiros e retorne:
    • a) A soma dos elementos de cada linha.
    • b) A média dos elementos informados.
    • c) A soma dos elementos da diagonal principal.
    • d) A quantidade de elementos múltiplos de 3.

Resolução minha:


#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    // declarando as variáveis
    int a=0, b=0, i=0, j=0, sair=0, somalinha=0, somatotal=0, somadiagonal=0, multiplos3=0;

    // declarando a matriz
    int matriz1 [a] [b];

    // Entrando com os parâmetros da matriz
    cout<<"Escreva o número de linhas da matriz."<<endl;
    cin>>a;
    cout<<"Escreva o número de colunas da matriz."<<endl;
    cin>>b;

    // Entrando com os dados da matriz
    for(i=0;i<a;i++){
     for(j=0;j<b;j++){
      cout<<"Escreva o número da posicao linha "<<i<<" coluna "<<j<<"."<<endl;
      cin>> matriz1[i][j];

     }
    }

    // Saindo com os dados da matriz
    for(i=0;i<a;i++){
     for(j=0;j<b;j++){
      cout<<"O número da posicao linha "<<i<<" coluna "<<j<<" é: ";
      cout<< matriz1[i][j]<<endl;

     }
    }

// resposta da letra a - A soma dos elementos de cada linha
    for(i=0;i<a;i++){
     somalinha=0;
     for(j=0;j<b;j++){
      somalinha=somalinha+matriz1[i][j];
     }
     cout<<"A soma dos número posicao linha "<<i<<" é: "<<somalinha<<"."<<endl;
    }

// resposta da letra b - A média dos elementos informados
    for(i=0;i<a;i++){
     for(j=0;j<b;j++){
      somatotal=somatotal+matriz1[i][j];
     }
    }
cout<<"A soma de todos os elementos é "<<somatotal<<" e a media é "<<somatotal/(a*b)<<"."<<endl;


// resposta da letra c - A soma dos elementos da diagonal principal
    for(i=0;i<a;i++){
     for(j=0;j<b;j++){
      if(i==j){
        somadiagonal=somadiagonal+matriz1[i][j];
        } // fechamento do if
     }
    }
cout<<"A soma dos elementos da diagonal da matriz é "<<somadiagonal<<"."<<endl;


// resposta da letra d - A quantidade de elementos múltiplos de 3
    for(i=0;i<a;i++){
     for(j=0;j<b;j++){
      if(matriz1[i][j]%3==0){
         multiplos3++;
        } // fechamento do if
     }
    }
cout<<"A quantidade de elementos multiplos de 3 da matriz é "<<multiplos3<<"."<<endl;

// Encerrando o programa
    system ("Pause");

    while(sair==0){
    cout << "Digite 1 para sair" << endl;
    cin>> sair;
    } // fechamento do while
    return 0;
}




Lucas T R Freitas

segunda-feira, 30 de maio de 2016

Programação de computadores - 30 de Maio de 2016

Programação de computadores - 30 de Maio de 2016

# include <iostream>
# include <fstream>
using namespace std;

int vetpar[10];
int vetimpar[10];

void gravacao(){
 // gravar 10 números em um arquivo externo
} fechamento do void gravação

void gravacao(){
 // ler o arquivo externo e separar os 10 números em 2 vetores par e ímpar sem lixo
} fechamento do void gravação

void imprimir(){
 // imprimir os dois vetores
} fechamento do void gravação

void maiorprimoimpar(){
 // verificar qual o maior número ímpar no vetor ímpar
 // verifcar se esse número é primo ou não
} fechamento do void gravação

void Media(){
 // retornar a media dos números contidos no vetor par
} fechamento do void gravação

int main(){
  gravacao();
  leitura();
  maiorprimoimpar();
  media();
  return 0;
}  // fechamento do int main


int Somar(int x, int y){
 int soma;
 soma = (x+y)
 return soma;
} // fechamento do int soma


int main (){
 cout<<"Informe dois números<<endl;
 cin>>n1;
 cin>>n2;
 resultado=Somar(n1,n2);
 cout<<resultado<<endl;
 return 0;
} // fechamento do int main


ofstream grava ("arq.txt");
 cout<<"Informe 10 números"<<endl;
 for(I=0;I<10;I++){
  cin>>num;
  grava<<num<<endl;
 } // fechamento do for
grava.close();


Lucas T R Freitas

quarta-feira, 25 de maio de 2016

Programação de computadores - 25 de Maio de 2016

Programação de computadores - 25 de Maio de 2016

Correção do exercício

a) ler 40 números para um arquivo

b) separar as notas em 2 vetores:
>=5,0
<5,0

c) imprimir as notas

d) quantidade de notas entre 4 e 5

e) Média das notas


Resposta:

#include <iostream>
#include <fstream>

using namespace std;

const int qtdNotas = 10;
float nota1[qtdNotas]; // Notas maiores ou iguais a 5
float nota2[qtdNotas]; // Notas menores que 5
int cont1=0, cont2=0;

void LeNotas(){
 ofstream arqNotas("dados.txt");

 for(int i=0;i<qtdNotas;i++){
  float nota;
  cout<<"Informe uma nota: ";
  cin>>nota;
  arqNotas<<nota<<endl;
 } // fechamento do for

arqNotas.close();

} // fechamento do void

void SeparaNotas(){

 ifstream arqNotas("dados.txt");

 for(int i=0; i<qtdNotas;i++){
  float nota=0;
  arqNotas>>nota;
  if(nota>=5.0){
   nota1[cont1] = nota;
   cont1++;
  } // fechamento do if
   else{
   nota2[cont2] = nota;
   cont2++;
   } // fechamento do else
 } // fechamento do for
arqNotas.close();
} // fechamento do void

void ImprimeNotas(){
 cout<<"Notas maiores ou iguais a 5: ";
 for(int i=0;i<cont1;i++){
  cout<<nota1[i]<<",";
 } // fechamento do for
 cout<<endl;

 cout<<"Notas menores que 5: ";
 for(int i =0; i<cont2;i++){
  cout<<nota2[i]<<", ";
 } // fechamento do for

} // fechamento do void


int  QtdNotasEsuplementar(){
 int contNotasES=0;
 for(int i=0;i<cont2;i++){
  if(nota2[i]>=4.0 && nota2[i] < 5.0){
   contNotasES++;
  } // fechamento do if

 } // fechamento do for
 return contNotasES;

} // fechamento do void


float MediaV1() {
 float soma=0;

 for(int i=0; i<cont1;i++){
   soma = soma+nota1[i];
 } // fechamento do for
 float media = soma/cont1;
 return media;
} // fechamento do float


void MediaV2() {
 float soma=0;

 for(int i=0; i<cont1;i++){
   soma = soma+nota1[i];
 } // fechamento do for
 float media = soma/cont1;
 cout<<"Media: "<<media<<endl;
 if(media>6){
  cout<<"A media está acima de 6.0";
 } // fechamento do if
 else{
  cout<<"A média está abaixo de 6.0";
 } // fechamento do else
} // fechamento do float

int main(){
 LeNotas();
 SeparaNotas();
 Imprime Notas();
 int qtd = QtdNotasESuplementar();
 cout<<"Quantidade para o exames suplementar: "<<qtd<<endl;

// versão 1 para o cálculo da média
 float m = MediaV1();
 if(m>=6){
  cout<<"A média está acima de 6.0";
 } // fechamento do if
 else{
  cout<<"A média está abaixo de 6.0";
 } // fechamento do else

// versão 2 para o cálculo da média
MediaV2();
return 0;

} // fechamento do int main

Lucas T R Freitas

segunda-feira, 23 de maio de 2016

Programação de Computadores - 23 de Maio de 2016

Programação de Computadores - 23 de Maio de 2016

Correção da professora:

int main(){


string des[10],busca;
float pcusto[10];
int tipo[10];
float pvenda[10];
int i, cont1, cont2;
float soma1,soma2;
float media1,media2;
float perc1,perc2;

cont1=0;
cont2=0;
soma1=0;
soma2=0;
media1=0;
media2=0;

// vetores entrada
cout>> "Informe a descrição, o preço de custo e o tipo 1 (perecível) ou 2 (não perecível");

for (i=0;i<10;i++){
 cin>> des[i];
 cin>>pcusto[i];
 cin>>tipo[i];
} // fechamento do for

// calculando o preço de venda
for (i=0;i<10;i++){
 if (tipo[i]==1){
  pvenda[i]=((pcusto[i]*0.15)+pcusto[i]);
  cout<<"O produto "<<des[i]<<" possui preço de venda igual a "<<pvenda[i]<<endl;
 }// fechamento do if
 else{
  if (tipo[i]==2){
   pvenda[i]=((pcusto[i]*0.20)+ pcusto[i])
   cout<<"O produto "<<des[i]<<" possui preço de venda igual a "<< pvenda[i]<<endl;
  } // fechamento do if
 } // fechamento do else

} // fechamento do for


// media dos preços de venda

for (i=0;i<10;i++){
 if (tipo[i]==1){
  cont1=cont1+1;
  soma1=soma1+(pvenda[i]);
 } // fechamento do if
 else{
  if(tipo[i]==2){
   cont2=cont2+1;
   soma2=soma2+(pvenda[i]);
  } // fechamento do if
 } // fechamento do else
} // fechamento do for

media1=soma1/cont1;
media2=coma2/cont2;
cout<<"A média do tipo 1 é "<<media1<<endl;
cout<<"A média do tipo 2 é "<<media2<<endl;


// percentual por tipo
perc1=((cont1/10)*100);
perc2=((cont2/10)*100);
cout<<"O percentual do tipo 1 é: "<<perc1<<endl;
cout<<"O percentual do tipo 2 é: "<<perc2<<endl;


// busca por nome
cout<< "Informe o nome do produto."<<endl;
cin>>busca;

for(i=0;i<10;i++){
 if (busca==des[i]){
  cout<<pvenda[i];
 } // fechamento do if
} // fechamento do for


// gravando no arquivo externo

ofstream grava("arq.txt");

for(i=0;i<10;i++){
 if(pcusto[i]<=1000 && pcusto[i]<=2000){
  grava<<pcusto[i]<<endl;
 } // fechamento do if
} // fechamento do for

grava.close();

} // fechamento do int main


Exercício em sala:

Você foi convidado pelo professor de programação para ajudar no controle dos registros acadêmicos e para isso você deve fazer um programa em c++ (construindo uma função para cada item) que permita:
a) ler a nota de 40 alunos e gravá-los em um arquivo externo.
b) recuperar os dados do arquivo gravado inserindo em 2 vetores distintos, um primeiro contendo as notas maiores ou iguais a 5,0 e um segundo contendo as notas menores que 5,0.
c) Imprimir as notas armazenadas no primeiro vetor e as armazenadas no segundo vetor separadamente (sem "lixo").
d) Imprimir a quantidade de notas do segundo vetor que estão entre 4,0 e 5,0.
e) Imprimir uma mensagem dizendo a quantidade de notas do primeiro vetor que está acima ou abaixo de 6,0.

Lucas T R Freitas

quarta-feira, 18 de maio de 2016

Programação de Computadores - 18 de Maio de 2016

Programação de Computadores - 18 de Maio de 2016


Faça um algoritmo que realize a leitura de 10 números em um arquivo chamado “dados1.txt”, armazene esses dados em um vetor, e, em seguida, grave outro arquivo chamado “dados2.txt” com o valor do vetor em ordem inversa.


Correção da professora:

# include <iostream>
# include <fstream>
using namespace std;

int main(){

int i;
int vet[10];

// transferindo os dados do arquivo para o vetor

ifstream lendo ("dados1.txt");
 for (i=0;i<=10;i++){
  lendo>>vet[i];
 } // fechamento do for
lendo.close();

// gravando os números do vetor em ordem inversa no arquivo dados2.txt
ofstream grava ("dados2.txt")
 for (i=9;i>=0;i--){
  grava<<vet[i]<<endl;
 } // fechamento do for

grava.close();

return 0;

}// fechamento do int main



Exercício
Faça um programa em c++ que leia em vetores a descrição, o preço de custo e o tipo de 10 produtos. Considere tipo "perecível" e "não perecível".

O algoritmo deverá calcular e retornar:
a) em um novo vetor o preço de venda de cada produto. Considere que produtos perecíveis devem possuir um lucro de 15% e não perecíveis 20%.
b) a média dos preços de venda dos produtos perecíveis e não perecíveis
c) o percentual de produtos perecíveis e não perecíveis
d) permitir que o usuário realize uma busca do produto por nome e retorne o preço de venda.
e) gravar em um arquivo externo o nome dos produtos com preços de custo entre R$ 1.000,00 e R$ 2.000,00.


Resposta minha

#include <iostream>
#include <fstream>

using namespace std

int main(){

//declarando os vetores
string descricao[10];
float precocusto[10];
string tipo[10];
float precovenda[10];

// declarando as variáveis
int i;
float media;

// recebendo os dados dos produtos
for (i=0;i<10;i++){
 cout<<""Informe a descrição do produto "<<i<<"."<<endl;
 cin>>descricao[i];
 cout<<""Informe o preço de custo do produto "<<i<<"."<<endl;
 cin>>precocusto[i];
 cout<<""Informe o tipo (perecível ou não perecível) do produto "<<i<<"."<<endl;
 cin>>tipo[i];

} // fechamento do for

// calculando o preço de venda - Resposta da letra A
for (i=0;i<10;i++){
 if (tipo[i]="perecivel"){
 precovenda[i]=precocusto[i]*1.15;
 } // fechamento do if
 else{
  precovenda[i]=precocusto[i]*1.20;
 } // fechamento do else

} // fechamento do for

// calculando a média dos preços - Resposta da letra B
for(i=0;i<10;i++){
 if (tipo[i]="perecivel"){
 precovenda[i]=precocusto[i]*1.15;
 } // fechamento do if
 else{
  precovenda[i]=precocusto[i]*1.20;
 } // fechamento do else


} // fechamento do for

}// fechamento do int main

Lucas T R Freitas