Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica para redes de computadores Atividade 4 1. Vamos acompanhar o exemplo de uma empresa que precisa pagar seus colaboradores temporários em espécie. Para cada valor a ser pago, o gerente da empresa conta a quantidade de notas de R$100, R$50, R$20, R$10, R$5, R$2 e moedas de R$1. Por exemplo, um colaborador irá receber R$1.655,00, então, serão necessárias 16 notas de R$100, uma nota de R$50 e uma nota de R$5. Ao final, ele soma todas as quantidades de cada nota, e solicita ao banco a quantidade necessária. Isso é necessário, para que o pagamento seja exato, sem troco, pois, se um colaborador recebe R$1.655,00 e um outro R$1.345,00, somando-se os dois temos um total de R$3.000,00, mas se for solicitado ao banco um valor de R$3.000,00 em espécie, o banco poderia fornecer 30 notas de R$100, e o gerente da empresa não poderia pagar o valor exato aos dois colaboradores. Assim, para que o gerente possa automatizar esse cálculo, a empresa solicitou o desenvolvimento de um programa para ler o nome e o valor a ser pago de cada colaborador, e informar a quantidade de notas necessárias para pagar cada colaborador e depois a quantidade final. O desenvolvedor do programa adotou a seguinte estrutura: Uma matriz de string para guardar os nomes dos colaboradores e uma matriz de float para: • coluna 0: valor a ser pago para cada colaborador; • coluna 1: a quantidade de notas de R$100; • coluna 2: a quantidade de notas de R$50; • coluna 3: a quantidade de notas de R$20; • coluna 4: a quantidade de notas de R$10; • coluna 5: a quantidade de notas de R$5; • coluna 6: a quantidade de notas de R$2; • coluna 7: a quantidade de moedas de R$1. A última linha das duas matrizes, será utilizada para armazenar o somatório de cada coluna, ou seja, o valor total a ser pago, o total de notas de R$100, etc. O programa terá a seguinte tela principal: A tela de execução da opção 1 é Obs.: a função setbuf(stdin, NULL) limpa o buffer do teclado antes da leitura de strings, para corrigir pequenos erros. O programa que gerou esta tela de execução é: Resposta: 2. Uma operação que podemos fazer com as matrizes é encontrar a sua transposta. A matriz transposta é representada por . Para calcular a matriz transposta, basta transformar cada linha da matriz A em uma coluna na matriz transposta. Veja o exemplo a seguir. e A seguir é apresentado uma tela de execução de um programa que calcula a matriz inversa de matrizes 5x5. Escolha a seguir, o bloco de códigos que calcula a matriz transposta. Resposta: Comentário: O sinal de igualdade em C é representado por == e não =. Para gerar uma matriz transposta usa-se a primeira linha da primeira matriz como a primeira coluna da segunda matriz. 3. Os programadores devem saber a linguagem de programação fluentemente. Isso porque, para um programador não é só necessário saber construir um programa. Ele também deve saber ler o programa, ou seja, saber o que o programa faz, descobrir quais são as saídas de acordo com as entradas de dados. Em trabalhos feitos em equipe, ou mesmo em pesquisas ou estudos de códigos, saber ler o código desenvolvido por outra pessoa é fundamental. Por exemplo, analise o programa a seguir. Agora escolha qual tela de execução terá este programa. Resposta: Comentário: Este sistema carrega um vetor com números digitados pelo usuário. Depois ordena este vetor em ordem crescente e o imprime ao usuário. 4. Elena resolveu organizar uma competição de handebol misto, ou seja, mulheres e homens, em sua cidade, Rio Branco. Depois de divulgar a notícia entre os atletas e clubes, foram inscritas cinco equipes mistas, no total. As regras para pontuação foram definidas da seguinte forma: • vitória vale 3 pontos; • empate vale 1 ponto; • derrota vale 0 pontos. A estrutura adotada é: Um vetor de strings para os nomes dos times e uma matriz do tipo inteira para os resultados e pontuação. A primeira coluna da matriz guarda o número de vitórias, a segunda o número de empates, a terceira o número de derrotas e a última o total de pontos. O programa para fazer os cálculos dos pontos possui a seguinte tela principal: O bloco de comandos da opção 3 é mostrado a seguir. Observe que uma parte do programa foi coberta. Escolha, a seguir, o bloco de comandos que foi coberto na opção 3. Resposta: Comentário: O código oculto no caso determina o elemento de maior valor na matriz de pontos do campeonato. 5. Na linguagem de programação C, as strings são matrizes de caracteres ou um conjunto de vetores de caracteres. Para manipular as strings é necessário o uso de funções específicas. Por exemplo, a função strcpy, copia uma string para uma variável. Analise a tela de execução, a seguir, de um programa para escrever por extenso os números de 0 a 9. De acordo com a tela de execução, o programa que a gerou é: Resposta: Comentário: A função strcpy é uma forma de atribuir valores para uma matriz de caracteres. O comando condicional, neste exemplo, seleciona apenas os números entre 0 e 9, e envia uma mensagem de erro para os números fora da faixa de 0 a 9 e diferentes de -1. 6. Sabemos que, na linguagem C, string é um vetor de caracteres, que utiliza uma biblioteca específica, a string.h. O caractere é um elemento simples, e para ele, usamos aspas simples, enquanto a string leva aspas duplas, por ser um vetor de caracteres. A manipulação de strings requer funções específicas da biblioteca string.h. Uma função que retorna o tamanho de uma palavra é a strlen. Analise o programa a seguir. Agora, responda: se a palavra aroma foi digitada na entrada, qual será a saída? Resposta: amora 7. Uma mãe resolveu fazer uma festa para sua filha que irá completar 14 anos. Ela pensou em chamar só os amigos mais próximos. Perguntando à filha, ela descobriu que virão à festa apenas seis amigos. A mãe providenciou os salgados e o bolo de aniversário e a festa foi um sucesso. Depois, a mãe ficou curiosa para saber, dentre os amigos da filha: • quem era o mais velho; • quem era o mais novo; • qual a média de idade dos amigos; • e quem estava acima da média das idades. A tela de execução de um programa que calcula as informações acima é: Escolha a seguir o programa que gerou esta tela. Resposta: Comentário: Os vetores são variáveis do mesmo tipo, e para acessar um elemento do vetor, basta identificar o nome do vetor e a posição do elemento. A numeração dos elementos sempre começa por 0. 8. As matrizes são estruturas de armazenamento temporário. Para acessar um elemento da matriz, indique o nome da matriz seguido da posição da linha e da coluna, nesta sequência. Podemos manipular matrizes usando dois comandos de repetição, inclusive para preenchê-las. O programa a seguir, preenche uma matriz 3x3, com zeros e uns. Analisando este programa, escolha a opção correta que mostra qual será a matriz gerada. Resposta: Comentário: Este programa carrega uma matriz com zeros e uns, usando o seguinte critério: se a soma do número da linha com o número da coluna for par, então preencher com zero, senão preencher com um. 9. Maria Laura resolveu organizar um campeonato de futebol misto, ou seja, mulheres e homens, no bairro onde mora, Jabaquara, na cidade de São Paulo. Ela conseguiu a participação de cinco equipes mistas. As regras para pontuação são simples: • vitória vale 3 pontos; • empate vale 1 ponto; • derrota vale 0 pontos. A estrutura adotada é: Um vetor de strings para os nomes dos times e uma matriz do tipo inteira para os resultados e pontuação. A primeira coluna da matriz guarda o número de vitórias, a segunda o número de empates, a terceira o número de derrotas e a ultima o total de pontos. O programa para fazer os cálculos dos pontos, possui a seguinte tela principal: A opção 1, cadastrar times, foi construída assim: A função setbuf(stdin, NULL) serve para limpar o buffer, assim, evita alguns erros na leitura de caracteres.Analisando este programa e a descrição anterior, considere as afirmações a seguir. I. A função gets pode ser substituída pela função scanf, sem prejudicar a leitura dos nomes dos times. II. O vetor de strings, times, deve ser declarado como char times[5]. III. O vetor times, por ser uma cadeia de caracteres, deve ser lido sem a identificação da sua posição. Então, a leitura correta na função de entrada gets será: gets(times);. IV. Serão cadastrados cinco times, em sequência. Após a leitura, a tela será pausada, esperando que o usuário aperte qualquer tecla. Considerando as afirmações dadas, escolha a alternativa que apresenta o que é correto afirmar. Resposta: IV. apenas. 10. Quando trabalhamos com linguagem C e precisamos gerar números aleatórios, temos algumas opções de funções, entre elas:rand, random e srandom. A função gera números aleatórios na faixa de 0 a num. O programa a seguir, inicialmente carrega uma matriz com números aleatórios na faixa de 0 a 50, linhas de 7 a 10. Analise este programa e escolha a opção correta, a seguir. Resposta: Este programa carrega uma matriz 5x10, do tipo inteira com números aleatórios. Depois gera outro número aleatório e armazena na variável num. Imprime a matriz e as posições dos elementos iguais a num. Comentário: Ao analisar as informações, percebemos que o programa carrega uma matriz com a geração de números aleatórios e gera um número, também aleatório. Depois procura na matriz a existência deste numero, informando a sua posição
Compartilhar