Programação de Computadores I BCC Teórica 15

Documentos relacionados
tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Programação de Computadores I BCC Simulado da Segunda Avaliação 17/12/2015 Valor (10,0) Duração: 110 minutos

Programação de Computadores I BCC Terceira Avaliação 06/04/2013 Valor (3,0)

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Comandos de Desvio 1

PROGRAMAÇÃO DE COMPUTADORES

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

MANUAL DO CLIENTE FINAL ALTERAÇÕES BÁSICAS NO PRODUTO SITE ACESSANDO O PAINEL _ 1 EDITANDO TEXTOS _ 2 TROCANDO IMAGENS 4 INSERINDO VIDEOS 7

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Matemática. Resolução das atividades complementares. M2 Matrizes [ ] 1 Construa a matriz linha A 5 (a ij

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Análise e Resolução da prova de Agente de Polícia Federal Disciplina: Raciocínio Lógico Professor: Custódio Nascimento

Algoritmos Resolvidos Lista 1. Faça um algoritmo que receba dois números e exiba o resultado da sua soma.

Simulado de Linguagem de Programação Java

Módulo de Princípios Básicos de Contagem. Segundo ano

FESP FACULDADE DE ENGENHARIA SÃO PAULO DISCIPLINA BP1: PROCESSAMENTO DE DADOS

Aplicações Diferentes Para Números Complexos

Como contar o estoque. -Contagem do Estoque -Contagem Sequencial

Disciplina: Álgebra Linear - Engenharias ], C = Basta adicionar elemento a elemento de A e B que ocupam a mesma posição na matriz.

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

COBRANÇA BANCÁRIA CAIXA

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Seu manual do usuário HP deskjet 970c

Aula 11: Desvios e Laços

FUNDAMENTOS DA MATEMÁTICA

Formas de Pagamento Resumida Vendas Vendedor Vendas Vendedor Resumido Vendas Vendedor Caixa Vendas por Artigos...

a 21 a a 2n... a n1 a n2... a nn

MC Teste de Mesa e Comandos Repetitivos

Sejam P1(x1,y1) e P2(x2,y2) pontos pertencentes ao plano. A equação da reta pode ser expressa como: ou

Estruturas de Repetição

12 26, 62, 34, , , 65

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Lista de Exercícios Campo Elétrico

Bombons a Granel. Série Matemática na Escola. Objetivos 1. Introduzir e mostrar aplicações do produto de matrizes.

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Relatório das Provas da 2ª. Fase - Vestibular 2016

Resolução de circuitos usando Teorema de Thévenin Exercícios Resolvidos

Registro de Retenções Tributárias e Pagamentos

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

MANUAL DO USUÁRIO. Figura 1: Tela de Apresentação do FaçaCalc.

I. Conjunto Elemento Pertinência

Demonstração do Simulador de Saldo e Benefícios

Estrutura de Seleção

Jogos com números Colocando números

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

SUPERTEC2007 SINCRONISMO DETETOR DE MODOS MICRO

Manual de Programação TED1000 versão TC100 Ethernet

1 - POLÍGONOS REGULARES E CIRCUNFERÊNCIAS

O Cálculo λ sem Tipos

a) 2 b) 3 c) 4 d) 5 e) 6

UFOP PC-I Prof. Guilherme / Anderson. Operadores Relacionais e Lógicos, Comandos For e While e String

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

FÍSICA EXPERIMENTAL 3001

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Aula 03. Processadores. Prof. Ricardo Palma

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Diagrama de Impedâncias e Matriz de Admitância de um Sistema Elétrico

AULA 03 MEDIDAS DE RESISTÊNCIA ELÉTICA

Determinantes. Matemática Prof. Mauricio José

ORIENTAÇÕES: 1) Considere as expressões algébricas dos quadros abaixo: Responda às perguntas:

Guia de Instalação. Driver Gráfico de Impressão for WINDOWS

Exercícios: Recursão

Manual Geral de Aplicação Universal Entrada 2008

Matrizes de Transferência de Forças e Deslocamentos para Seções Intermediárias de Elementos de Barra

Matrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.

Sobre o Visual C

Revisão: Variáveis, Expressões, Matrizes, Comandos de Desvio

Exercícios e questões de Álgebra Linear

Álgebra Linear I - Aula 20

Introdução ao determinante

ENG1000 Introdução à Engenharia

Capítulo1 Tensão Normal

UNIVERSITÁRIO DE SINOP CURSO DE ENGENHARIA CIVIL

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

2ª Lista de Exercícios

Tutorial do aluno Ambiente Virtual de Aprendizagem (AVA) Rede e-tec Brasil

Capítulo 2 - Determinantes

Estimativas de Arrecadação de Impostos Próprios Estaduais e Municipais, Transferências Constitucionais e os 25% Constitucionais da Educação

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA

aplicação arquivo Condições Gerais de Utilização

COLÉGIO SHALOM 9 ANO Professora: Bethânia Rodrigues 65 Geometria. Aluno(a):. Nº.

Resolução do exemplo 8.6a - pág 61 Apresente, analítica e geometricamente, a solução dos seguintes sistemas lineares.

BEMATECH LOJA PRACTICO ENTRADA MANUAL DE NOTAS FISCAIS

. (A verificação é imediata.)

Lista de Exercícios 1

Autoria: Fernanda Maria Villela Reis Orientadora: Tereza G. Kirner Coordenador do Projeto: Claudio Kirner. Projeto AIPRA (Processo CNPq /2010-2)

Aluísio Eustáquio da Silva

1 Cálculo do valor à vista

Transcrição:

Programação de Computadores I BCC 701 2017-1 Teórica 15 TAREFA 1: O Sr. Apu é proprietário de uma vedora de acessórios para computador, a Kwik E' Mart. Esta empresa possui 4 lojas e o Sr. Apu mantém um estoque mínimo de produtos em todas as lojas: HD (100 unidades); impressora (40 unidades); monitor (50 unidades); notebook (30 unidades); e tablet (80 unidades). Estas informações podem ser representadas pelos vetores: produto = [ HD impressora monitor notebook tablet ] minimo = [ 100 40 50 30 80 ] Conforme representado nesses vetores, vemos que a quantidade mínima de HDs é 100 e a quantidade mínima de notebooks é 30. Os estoques das 4 lojas são representados por uma matriz (estoque), onde cada linha representa o estoque de uma determinada loja. Seja a seguinte matriz estoque: 41 48 32 32 81 estoque da loja 1 102 38 50 15 85 estoque da loja 2 100 40 50 30 80 estoque da loja 3 100 40 50 35 78 estoque da loja 4 Você vai escrever um programa para controle do estoque, no qual: Os vetores produto e mínimo, e a matriz estoque, são lidos no início do programa. O programa verifica o estoque de cada produto em cada uma das lojas, identificando uma das seguintes situações em cada loja: a. todos os produtos estão de acordo com o estoque mínimo. Neste caso, é impressa uma mensagem informando tal situação; ou b. são impressos os produtos cujo estoque está abaixo do estoque mínimo e a quantidade que falta para atingir esse estoque. Abaixo, um exemplo de execução do programa. Exemplo RELATÓRIO DO ESTOQUE Loja Nro 1 Produto: HD - Faltam 59 unidades Produto: monitor - Faltam 18 unidades Loja Nro 2 Produto: impressora - Faltam 2 unidades Produto: notebook - Faltam 15 unidades Loja Nro 3 Todos os produtos possuem o estoque mínimo! Loja Nro 4 Produto: tablet - Faltam 2 unidades

Proposta de Solução clc; clear; // Não é necessário que o aluno digite os vetores e a matriz produto = ["HD" "impressora" "monitor" "notebook" "tablet"]; minimo = [ 100 40 50 30 80 ]; estoque = [ 41 48 32 32 81; 102 38 50 15 85; 100 40 50 30 80; 100 40 50 35 78 ]; // --------------------------------------------------------- [m, n] = size(estoque) printf("\nrelatório DO ESTOQUE\n"); for i = 1:m printf("loja Nro %g\n", i); ok = %t; for j = 1:n x = minimo(j) - estoque(i, j); if x > 0 then printf("produto: %s - Faltam %g unidades\n", produto(j), x); ok = %f; if ok then printf("todos os produtos possuem o estoque mínimo!\n");

Tarefa 2: Escreva um programa que leia uma matriz quadrada e imprima a matriz obtida trocando-se cada elemento da diagonal principal da matriz original pelo maior elemento da coluna correspondente. Por exemplo, se a matriz lida for tal como a mostrada abaixo, à esquerda, a matriz resultante é a mostrada à direita. Os elementos trocados estão destacados. Observe que, eventualmente, o maior elemento pode estar na própria diagonal principal, situação em que a matriz não sofre alteração visível. 12 8 15 6 1 6 20 15 0-4 0-8 -1 6 0-9 12 6 15 6 1 8 0-9 0-4 20-8 -1 6 0 15 O exemplo a seguir mostra a execução do programa, no caso em que a matriz lida é exatamente a mostrada acima. Exemplo 1 Matriz original: [ 12 8 15 6 ; 1 6 20 15 ; 0-4 0-8 ; -1 6 0-9 ] Matriz resultante: 12. 6. 15. 6. 1. 8. 0. - 9. 0. - 4. 20. - 8. - 1. 6. 0. 15. DICA: Defina no seu programa as funções a seguir e utilize essas funções para escrever o código do programa principal: 1) Defina a função troca, tal como a seguir: function [c,d] = troca(a,b) c = b; d = a; function Essa função é útil para trocar os valores de duas variáveis em um programa. Por exemplo, o comando [a,b] = troca(a,b), troca os valores das variáveis a e b, de maneira que, por exemplo, se a = 2 e b = 5, antes da execução do comando acima, após a execução do mesmo o valor contido em a será 5 e o valor contido em b será 2. 2) Defina uma função mymax, que receba como parâmetro um vetor v e retorne dois valores m e i, tais que m é o maior elemento de v e i é o índice da posição em que esse elemento ocorre em v (ou seja, mymax funciona exatamente como a função max da biblioteca Scilab). Por exemplo, [mv, iv] = mymax([5 8 3 4 6]) retorna mv = 8 e iv = 2

Proposta de Solução clear; clc function [c, d]=troca(a, b) c = b; d = a function function [m, i]=mymax(v) m = -%inf for j = 1:length(v) if v(j) > m then m = v(j); i = j function matriz = input("matriz original: ") [nl, nc] = size(matriz) for c = 1: nc v = matriz(:,c) [m, l] = max(v) [matriz(c,c), matriz(l,c)] = troca(matriz(c,c), matriz(l,c))

Tarefa 3: Um cromossomo com n genes pode ser representado por um vetor de n posições. Considerando os genes 0 e 1, e dois cromossomos de tamanho n = 16 temos: C1 = [ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ] C2 = [ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] Definimos cruzamento de C1 e C2 através da combinação de seus genes da seguinte maneira: 1) Escolher uma posição válida k, 1 k n para indicar o ponto de corte; 2) Copiar os elementos do vetor C1, posições de 1 até k, para um vetor C3; 3) Copiar os elementos do vetor C2, posições de (k+1) até n, para o mesmo vetor C3. 4) O vetor C3 é o vetor resultante do cruzamento dos vetores C1 e C2. Desta forma, o cruzamento de C1 e C2, com ponto de corte k = 8, resultaria em: C3 = [ 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 ] Escreva um programa Scilab para ler dois vetores C1 e C2, ler o valor de corte k e efetuar o cruzamento desses vetores. Caso o valor lido para k não seja válido, deve-se repetir a solicitação da entrada de k.até que um valor válido seja fornecido. Observe que k é um valor inteiro, mas não é necessário verificar se k é inteiro. A seguir um exemplo de execução do programa, com os mesmos vetores do exemplo acima, mas com outro valor de k: Execução: Digite o primeiro vetor: [ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ] Digite o segundo vetor: [ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] Digite o valor do ponto de corte: 11 Vetor resultante do cruzamento: 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0

Proposta de Código para a Solução clear; clc; // C1 = [ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ]; // C2 = [ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ]; n = length(c1); k = input("digite o valor do ponto de corte: "); while (k <= 1) (k >= n) printf("\nerro: valor inválido para k!"); k = input("digite o valor do ponto de corte: "); for i = 1:n if i <= k then C3(i) = C1(i); else C3(i) = C2(i); printf("\nvetor resultante do cruzamento: \n"); for i = 1:n printf("%g ", C3(i));

Tarefa 4: Observe a matriz abaixo, que contém os índices (percentuais) de variação de preços de um conjunto de itens do orçamento familiar, obtidos em uma pesquisa durante um período de 6 meses. Item Mês 1 2 3 4 5 6 Alimentos e bebidas 1.3% -1% 2% 3% -0.8% 0.5% Transportes 0.5% 0% 0.7% 0% 0.8% 0% Habitação 0.6% 0.3% 0.4% -0.3% 1.2% 0.8% Saúde e Educação 2.3% 0.5% 0.7% 1.1% 0.4% 1.0% Vestuário 1.0% 0.6% 0.4% -0.5% 1.0% 1.5% Vamos supor, de forma simplificada, que o índice de variação de preço de um dado item, no período de pesquisa, seja calculado como a soma das variações mensais. Por exemplo, o índice para o item alimentos e bebidas seria: 1.3-1+2+3-0.8+5 = 5 Paralelamente, foi feita outra pesquisa para determinar o percentual do orçamento familiar que é destinado a cada um desses itens (peso do item no orçamento). O quadro abaixo sintetiza o resultado das duas pesquisas: Item Variação de Preço Peso Alimentos e bebidas 5% 26% Transportes 2% 20% Habitação 3% 18% Saúde e Educação 6% 26% Vestuário 4% 10% Total 100% Esses dados permitem calcular o índice de inflação no período como: I = (5x26 + 2x20 + 3x18 + 6x26 + 4x10) / 100 = 4.2 Escreva um programa para ler os seguintes dados: 1. um vetor conto os pesos dos itens 2. uma matriz conto as variações de preço desses itens em um período de n meses. O programa deverá calcular: 1. o percentual de variação de preço de cada item, armazenando-os em um vetor 2. o índice de inflação. Um exemplo de execução é mostrado a seguir, considerando 4 itens, em um período de 3 meses. INDICE DE INFLAÇÃO Pesos dos itens: [40 25 15 20] Variação mensal de custo dos itens: [2 3 4; 3 2 2; 3 5 4; 2 3 3] Índice de inflação = 8.75%

Proposta de Solução clear; clc; printf("indice DE INFLAÇÃO\n") pesos = input("pesos dos itens: ") custos = input("variação mensal de custos dos itens: ") [L,C] = size(custos) custot = zeros(1,l) I = 0 for i=1:l custo(i) = 0; for j=1:c custo(i) + custo(i) + custos(i, j) I = I + custo(i) * peso(i) printf( ÍNDICE DE INFLAÇÃO = %6.3f %\n,i)