Trabalhos feitos na disciplina de introdução a computação
TRABALHOS IC1
-
Faça um programa que leia 5 números. Este programa deve ter um menu que permita ao usuário escolher qual opção de cálculo ele deseja realizar: média aritmética simples, média ponderada (ler os pesos associados a cada nota que serão informados pelo usuário), desvio padrão, maior valor e menor valor. A leitura dos 5 valores também deve ser uma das opções do menu.
-
Faça um programa para o “jogo de adivinhar um número”. O computador deve sortear um número entre 0 e 100 e pedir para o usuário tentar adivinhar este número. O usuário vai dizer o seu palpite, e o computador deve responder, se ele é maior ou menor que o número que ele sorteou. O programa termina somente quando o usuário acertar exatamente qual o número que o computador tinha sorteado, escrevendo uma mensagem de felicitações para o nosso usuário e indicando o número total de tentativas feitas.
-
Faça um programa que leia dois números n e m e: Crie e leia um vetor de inteiros de n posições; Crie e leia um vetor de inteiros de m posições; Crie e construa um vetor de inteiros que seja a interseção entre os dois vetores anteriores, ou seja, que contém apenas os números que estão em ambos os vetores. Não deve conter números repetidos.
TAREFAS IC2
-
Escrever um programa em C++ que // A. Possua uma estrutura chamada estudante com os seguinte elementos // Numero USP // Nota da primeira prova // Nota da segunda prova // Média final // B. Tenha um menu que permita realizar as seguintes operações // 1. Entrar com dados de um estudante (número USP e notas das provas) // 2. Mostrar dados de um estudante // 3. Mostrar a média e desvio padrão para as médias finais de todos os estudantes cadastrados // 4. Sair
-
Utilizando a Lib "ctime" fazer testes de velocidade de execução de funções que calculam a média aritmética de dois vetores de n tamanho e plotar os resultados em gráfico.
-
Seja uma função (subrotina) que, dado um vetor v com n inteiros e um inteiro x (chave de busca), retorne o índice da primeira ocorrência de x em v; caso não encontre x no vetor v, a função deve retornar o valor -1. O número de operações primitivas desta função deve ser constante para o melhor caso, enquanto que para o pior caso, o número de operações primitivas deve ser linear em n. Pede-se: a) Implemente a função em C++. b) Faça a análise por operações primitivas da função.
-
A prefeitura de uma cidade faz uma pesquisa sobre os domicílios na área urbana. Em cada domicilio, são coletados dados sobre renda média mensal, número total de ocupantes, endereço e número de ocupantes em idade escolar. Faça: a. um programa que leia estes dados, faça a ordenação por inserção direta e salve os dados ordenados em um arquivo. Os dados devem ser ordenados de acordo com o endereço. b. um programa que leia o arquivo e tenha um menu que permita: i. Listar todos os domicílios, com as respectivas informações; ii. Buscar os dados do domicílio quando um determinado endereço é digitado. Para a busca, deve-se utilizar busca binária; iii. Sair.
-
Seja um registro (estrutura) com os campos: nome (string) e número de inscrição (int). Pede-se a. Faça uma função para ordenar, via QuickSort, um vetor com N registros. A ordenação deve ser de acordo com o número de inscrição; b. Imprima na tela o número de comparações entre chaves, movimentações de registros e chamadas da função recursiva realizadas pelo algoritmo. Utilize contadores para isso. c. Mostre os números de comparações e movimentações e desenhe as respectivas árvores de recursão para as 3 sequências a seguir (no qual apenas o número de inscrição é apresentado): 45 56 12 43 95 19 8 67 8 12 19 43 45 56 67 95 95 67 56 45 43 19 12 8
-
Sejam os seguintes algoritmos de ordenação: Inserção direta Inserção binária Seleção Bubblesort Heapsort Fusão QuickSort Pede-se: a) Implemente os algoritmos relacionados para vetores de inteiros com tamanho n (digitado pelo usuário). b) Obtenha os gráficos dos números de comparações entre chaves e de movimentações realizadas nos algoritmos considerando-se pelo menos 5 diferentes valores de n para: (1) vetores de entrada em ordem crescente (2) vetores de entrada em ordem decrescente (3) vetores de entrada com valores aleatórios c) Analise os algoritmos através dos gráficos obtidos, comentando se os resultados são condizentes com a análise assintótica de cada algoritmo. d) Baseado nos resultados obtidos, comente qual (ou quais) algoritmo(s) de ordenação é(são) mais apropriado(s) para cada tipo de vetor.
-
Seja um programa que tenha três funções para a manipulação de matrizes de ponto flutuante: i) uma que imprima a soma de duas matrizes A e B; ii) outra que calcule o resultado da multiplicação de duas matrizes A e B, e iii) uma terceira que calcule a soma do traço da matriz A com o traço da matriz B. Todas as matrizes são quadradas, isto é, tem n linhas e n colunas. Pede-se a. Implemente as 3 funções. As funções, que são chamadas no programa principal, recebem o valor de n e as matrizes A e B. As funções devem implementar o que foi pedido de forma eficiente em relação ao tempo de execução. b. Faça a análise assintótica (notação O) de cada uma das funções. Justifique as respostas.