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

sexta-feira, 24 de junho de 2016

Oração a Nossa Senhora Auxiliadora

Oração a Nossa Senhora Auxiliadora

Ó Maria, Virgem poderosa; Tu, grande e ilustre defensora da Igreja; Tu, Auxílio maravilhoso dos cristãos; Tu, terrível como exército ordenado em batalha; Tu, que, sozinha, destruíste toda heresia em todo o mundo: nas nossas angústias, nas nossas lutas, nas nossas aflições, defende-nos do inimigo; e na hora da morte, acolhe a nossa alma no paraíso. Amém.

Oração composta por São João Bosco

quinta-feira, 23 de junho de 2016

Gestão da Qualidade - 14/06/2016

Gestão da Qualidade - 14/06/2016

Manutenção preventiva

Estratégia - 5 forças de Porter
  • Estudo externo - mercado
  • Estudo interno - a sua empresa no mercado
  • Produtos substitutos
  • Novos concorrentes
  • Concorrentes
  • Fornecedores
    • Poder de negociação
  • Compradores
    • Poder de negociação
Planejamento Estratégico - Para 3 a 5 anos

Matriz SWOT
  • Ameaças
  • Oportunidades
  • Forças
  • Fraquezas
Estratégias genéricas de Porter:
  • liderar via custo
  • liderar via diferenciação
  • liderar via enfoque
Custos - Constare - ter determinado preço ou valor

Feigenbaum
  • custo de prevenção, avaliação, falhas internas e falhas externas
  • se você tem uma boa estratégia, você vai investir em prevenir erros.

Custos de prevenção
  • evitam problemas futuros
  • vêm no planejamento
Custos de avaliação
  • inspeções, manutenção, testes
  • evitam defeitos
Custos de falhas internas - devem ser evitados
  • refugos
  • retrabalho
  • retestes
  • paradas
  • esperas
  • falha no fornecedor
Custos de falhas externas (é o pior de todos) - devem ser evitados
  • quando o problema chega até o cliente
  • gasto com garantia
  • desconto
  • SAC (Serviço de atendimento ao cliente)
Investir em qualidade pode reduzir os custos
  • aumentar a lucratividade
Desperdícios na produção
  • Superprodução
  • Tempo de espera
    • entre processos
  • Transporte
  • Processos
    • que não agregam valor
  • Movimentação
    • arranjo físico dos fatores de produção
      • precisa de planejamento
  • Produtos defeituosos
    • empowerment dá autoridade às pessoas para pararem os processos e avisarem sobre os defeitos
  • Estoque
    • custos fixos
    • custos variáveis



Lucas T R Freitas

Gestão de Projetos - 15/04/2016

Gestão de Projetos - 15/04/2016

Gerenciamento de Projeto
Gerenciamento do custo

Não haverá prova 2 na N2.

PQP - Planilha de Quantidades e preços

Co - Custo otimista
Cm - Custo mais provável
Cp - Custo pessimista

Reserva de um projeto - em torno de 10% a 20%

Curva de avanço prevista do dinheiro do projeto.

  • Atividade: A
    • Duração: 3
      • Predecessora: -
  • Atividade: B
    • Duração: 2
      • Predecessora: A
  • Atividade: C
    • Duração: 1
      • Predecessora: A
  • Atividade: D
    • Duração: 3
      • Predecessora: B, C
Curva S ou curva de avanço



Lucas T R Freitas

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

How to make ● a simple soda bottle humane mouse trap (that works!)



Lucas T R Freitas

Filme Exercícios de GA versão final



Lucas T R Freitas

P!nk - Try (Lyrics)