CIÊNCIA DA COMPUTAÇÃO PROVA PARA TRANSFERÊNCIA



Documentos relacionados
INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15

INF 1620 P1-10/04/02 Questão 1 Nome:

Pesquisa Sequencial e Binária

Aula 1 Tipo Abstrato de Dados

2ª Lista de Exercícios

Tipo Abstrato de Dados

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

UNIVERSIDADE FEDERAL DE SANTA MARIA

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Linguagem C. Programação Estruturada. Funções Matemáticas. Prof. Luis Nícolas de Amorim Trigo

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Pilhas. Profa Morganna Diniz

Filas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

INF 1620 P2-01/11/03 Questão 1 Nome:

Aula 3 Alocação Dinâmica

Capítulo 2: Introdução à Linguagem C

Árvores Binárias - continuação

Métodos Computacionais. Árvores

INF 1007 Programação II

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

17 - Funções e Procedimentos em C Programação Modular

struct LISTA item quant

INF 1007 Programação II

Solucionário de. Programação

ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.

Pesquisa em Memória Primária. Prof. Jonas Potros

Métodos Computacionais. Fila

Busca. Pesquisa sequencial

Linguagem C: Árvores Binarias

INF 1007 Programação II

Programas operam sobre dados. Dados são relacionados e possuem estrutura. Como representar e manipular dados em um computador

Introdução a Computação

Analise o código abaixo:

INF 1620 P2-23/10/04 Questão 1 Nome:

ALGORITMOS E ESTRUTURAS DE DADOS Terceiro Trabalho Prático Recursividade e Pilhas

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Estruturas de Dados Aula 11: TAD Pilha 09/05/2011

INF 1010 Estruturas de Dados Avançadas

Algoritmos de Busca em Tabelas

José Romildo Malaquias

PROGRAMAÇÃO II 3. FILA DINÂMICA

EAD Árvore árvore binária

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Estruturas de Dados Aula 15: Árvores 17/05/2011

Listas (Parte 2) Túlio Toffolo BCC202 Aula 10 Algoritmos e Estruturas de Dados I

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

Introdução à Programação Bacharelado em Sistemas de Informação 3ª Lista de Exercícios - Solução Procedimentos e Funções

Estruturas de Repetição

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

MC-102 Aula 19 Registros

DAS5102 Fundamentos da Estrutura da Informação

Figura 13.1: Um exemplo de árvore de diretório.

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010

MC-102 Aula 17 Strings e Matrizes

Estruturas (registros)

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0

INF 1620 P3-21/06/08 Questão 1 Nome:

INF 1005 Programação I

Trabalho 3: Agenda de Tarefas

Árvores Binárias de Busca

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Linguagem C ponteiros

Algoritmos e Estruturas de Dados

Funções recursivas. O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); }

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

PROVA P2 INF /10/2014 Programação II

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Vetores. Professor Dr Francisco Isidro Massettto

INF 1005 Programação I

Estruturas de entrada e saída

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Conceitos básicos da linguagem C

Árvores binárias de pesquisa com balanceamento. Algoritmos e Estruturas de Dados II

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários

Estruturas de Dados Aula 11: TAD Pilha

Estruturas de Dados I

SSC 0301 IC para Engenharia Ambiental

Module Introduction. Programação. Cap. 10 Estruturas (Structs)

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

10. Listas Encadeadas

GABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv { int info; struct noarv * esq; struct noarv * dir; }; typedef struct noarv NoArv;

Programação: Estruturas de seleção

428 Capítulo 7 Arrays. do { ExibeArrayInts(ar, n); /* Exibe a configuração */ /* corrente do array */ } while (ProximaPermutacao(ar, n));

Algoritmos e Programação Estruturada

Transcrição:

COM. 1 CIÊNCIA DA COMPUTAÇÃO PROVA PARA TRANSFERÊNCIA 1. A CEF concederá um crédito especial com juros de 2% aos seus clientes de acordo com o saldo médio no último ano. Escreva um programa em C que leia o saldo médio de um cliente e calcule o valor do crédito de acordo com a tabela a seguir. Imprima uma mensagem informando o saldo médio e o valor de crédito. Saldo Médio De 0 a 500 De 501 a 1000 De 1001 a 3000 Acima de 3001 Percentual Nenhum crédito 30% do valor do saldo médio 40% do valor do saldo médio 50% do valor do saldo médio 2. Escreva uma função que receba um número inteiro. Essa função deve verificar se tal número é primo. No caso positivo, a função deve retornar 1, caso contrário zero. Escreva também um programa para testar tal função.

COM. 2 3. Desenvolva um algoritmo com ordem de complexidade O( n log k ) para encontrar os k menores valores num vetor não ordenado de n elementos (onde n > k). Considere que operações/funções sobre estruturas de dados já estão implementadas.

COM. 3 4. Considere a função iterativa de busca binária em um vetor previamente ordenado apresentada abaixo. Construa uma função recursiva que realize a mesma busca. int BinariaIterativa(Tabela *T,TChave x,int n) int Meio, Esq, Dir; Esq = 0; Dir = n-1; do Meio = (Esq + Dir) / 2; if (x > T->Registro[Meio].Chave) Esq = Meio + 1; Dir = Meio - 1; while ( (x!= T->Registro[Meio].Chave) && (Esq <= Dir) ); if (x == T->Registro[Meio].Chave) return Meio; return -1;

COM. 4 5. Considere uma pilha P vazia e uma fila F não vazia. Utilizando apenas os testes de fila e pilha vazias (FilaVazia, PilhaVazia e FazPilhaVazia), as operações Enfileira, Desenfileira, Empilha, Desempilha e uma variável aux do tipo TItem, escreva uma função em C/C++ que inverta a ordem dos elementos da fila (a função recebe somente a fila como parâmetro). Uma sugestão para a definição (protótipo) da função é: void InverteFila(TFila* pfila);

COM. 5 6. Suponha que um vetor (P) seja representado por suas coordenadas polares, o módulo (Γ) e o angulo (α), como apresentados na figura abaixo. Obs.: Os dados referentes a angulo podem ser tratados todos em radianos. Faça o que se pede. A) Crie um tipo abstrato de dados TPolar para armazenar um número polar usando dois números reais: o módulo (dgama) e o angulo (em radianos - dteta). B) Escreva uma função que receba um número polar (representado por dois números reais), crie uma estrutura para representá-lo e retorne essa estrutura.

COM. 6 C) Escreva uma função que receba uma estrutura TPolar e retorne as coordenadas cartesianas ( x e y ) deste número polar usando decomposição por trigonometria (considere que as funções sin(arc) e cos(arc) estão definidas em math.h). D) Escreva uma função que receba dois TADs TPolar, defina um terceiro TAD para representar o resultado da soma dos dois números polares recebidos como entrada, e finalmente retorne esse terceiro TAD (considere que as funções sqrt(x) e atan2(co,ca) estão definidas em math.h).

COM. 7 GABARITO Prova de transferência para Ciência da Computação Questão 1: #include <stdio.h> int main(void) double SALDOMEDIO, CREDITO; printf("digite o Saldo médio: "); scanf("%lf",&saldomedio); if ( SALDOMEDIO <= 500. ) CREDITO = 0; if ( SALDOMEDIO <= 1000. ) CREDITO = (30./100) * SALDOMEDIO; if ( SALDOMEDIO <= 3000. ) CREDITO = (40./100) * SALDOMEDIO; CREDITO = (50./100) * SALDOMEDIO; printf("saldo médio de: %lf\n",saldomedio); printf("crédito especial de: %lf\n ",CREDITO); return 0; Questão 2: #include <stdio.h> int primo(int N) int i,pri; if ( N < 2 ) return 0; pri = 1; for ( i = 2; i < N ; i++ ) if ( (N % i) == 0 ) pri = 0 ; return pri; int main(void) int X; printf("digite um número: "); scanf("%d",&x); if ( primo(x) == 1 ) printf("é primo!\n"); printf("não é primo!\n"); return 0;

COM. 8 Questão 3: int KMenores(int* Vetor, int *Heap, int nvetor, int nheap) int i ; int n = 0 ; /* tamanho do heap */ for( i = 1 ; i <= nvetor ; i++ ) if ( n >= nheap ) if ( Max(Heap) > Vetor[i] ) RetiraMax ( Heap, &n); Insere ( Vetor[i], Heap, &n ); Insere ( Vetor[i], Heap, &n ); return n; Questão 4: int BinariaRecursiva(Tabela* T,TChave x,int Esq,int Dir) int Meio; Meio = (Esq+Dir)/2; if (T->Registro[Meio].Chave == x) return Meio; if (Esq >= Dir) return -1; if (x > T->Registro[Meio].Chave) return BinariaRecursiva(T,x,Meio+1,Dir); return BinariaRecursiva(T,x,Esq,Meio-1);

COM. 9 Questão 5: void InverteFila(TFila* pfila) TPilha stpilhaaux; TItem aux; FazPilhaVazia(&stPilhaAux); while(!filavazia(pfila)) Desenfileira(pFila,&aux); Empilha(&stPilhaAux,aux); while(!pilhavazia(&stpilhaaux)) Desempilha(&stPilhaAux,&aux); Enfileira(pFila,aux); Questão 6: #define PI 3.14159265 #include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct double dgama; double dteta; TPolar; TPolar TPolarInicializa(double _dgama, double _dteta) TPolar staux; staux.dteta = _dteta; staux.dgama = _dgama; return staux; void TPolar2Cartesiano(TPolar* pstp, double* pdx, double* pdy) *pdx = pstp->dgama * cos(pstp->dteta); *pdy = pstp->dgama * sin(pstp->dteta); void Cartesiano2TPolar(double dx, double dy, TPolar* pstp) pstp->dgama = sqrt(dx*dx+dy*dy); pstp->dteta = atan2(dy,dx);

COM. 10 TPolar TPolarAdd(TPolar* pstp1,tpolar* pstp2) TPolar stadd; double dx,dy,dx1,dx2,dy1,dy2; TPolar2Cartesiano(pstP1,&dX1,&dY1); TPolar2Cartesiano(pstP2,&dX2,&dY2); dx = dx1 + dx2;dy = dy1 + dy2; Cartesiano2TPolar(dX,dY,&stAdd); return stadd; int main() double dgama,dteta; TPolar stp1,stp2,stp3; printf("digite o modulo e o angulo do 1o. vetor: "); scanf("%lf %lf",&dgama,&dteta); stp1 = TPolarInicializa(dGama,dTeta/180*PI); printf("digite o modulo e o angulo do 2o. vetor: "); scanf("%lf %lf",&dgama,&dteta); stp2 = TPolarInicializa(dGama,dTeta/180*PI); stp3 = TPolarAdd(&stP1,&stP2); printf("a soma desses dois vetores eh: %lf / %6.2lfo\n", stp3.dgama,stp3.dteta*180/pi); system("pause");