INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4



Documentos relacionados
Trabalho 3: Agenda de Tarefas

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

INF 1007 Programação II

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

INF 1007 Programação II

Métodos Computacionais. Fila

Este trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.

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

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Tabela ASCII de caracteres de controle

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

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

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Introdução a Computação

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!):

Exercícios de Revisão Java Básico

INF 1010 Estruturas de Dados Avançadas

INF 1005 Programação I

Lista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).

5 Apresentando a linguagem C

Estruturas (registros)

7. Estrutura de Decisão

INF 1007 Programação II

Encapsulamento de Dados

Modelo de Casos de Uso (Casos de Uso Expandidos + Diagrama de Casos de Uso) Modelo Conceitual Diagramas de Sequência de Eventos do Sistema

Registros. Técnicas de Programação. Rafael Silva Guimarães

Linguagem C Funções definidas pelo usuário. Lógica de Programação

Variáveis e Comandos de Atribuição

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Perfil Chefe de Transporte

TUTORIAL AMBIENTE WEB PORTUGOL

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Técnicas de Programação I

INTRODUÇÃO À LINGUAGEM C++

Estrutura de Dados Básica

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I

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

CONVÊNIO TJ-SC 10/2014

Algoritmos e Programação II. Sobrecarga

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

Ter o controle das pastas (Prontuários) armazenadas no "SAME", utilizando-se do recurso do "Volume".

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

float vantagem(float candidato[], float concorrente[], int n);

Linguagem de Programação

Sistema Integrado CAPES - Programa de Apoio a Eventos no País

Programação Orientada a Objeto

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

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

Modelo Entidade-Relacionamento

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Prof. Jhonatan Fernando

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Faturamento com Geração de ICMS Frete e Selo Fiscal

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

GUIA RÁPIDO DE UTILIZAÇÃO DO SIGPROJ VERSÃO USUÁRIO

INF 1007 Programação II

Conversão de Tipos e Arrays

INF 1005 Programação I

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

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

Algoritmos e Programação

Rotina para utilização do PALM (coletor de dados) no inventário. Biblioteca... Registros:... Estante: Prateleira:

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Filas: conceitos e implementações

struct LISTA item quant

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Dynafleet Treinamento 1º Acesso

Financeiro - Boleto : Remessa e Retorno

Programação: Estruturas de seleção

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

AULA 1 AULA 2. Estudo dirigido para as três primeiras AULAS de LPI Professora ANITA MACIEL 1º ESTUDO DIRIGIDO

9 Comandos condicionais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Passo a Passo dos Relatórios de Venda no Sigla Digital

MANUAL OFICINAS HDI - AUDATEX WEB

MANUAL DO SISTEMA. Versão 6.07

Capítulo 13 Pastas e Arquivos

Módulo Locação de Roupas

Estruturas II UFOP 1/1

Manual de Conciliação Bancária

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Linguagem de Programação C

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

O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

Programação: Tipos, Variáveis e Expressões

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II

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

MAIS CONTROLE SOFTWARE Controle Financeiro / Fluxo de Caixa (MCS Versão ) Índice

Transcrição:

INF1 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4 1. Considere uma aplicação que utiliza pontos, retângulos e círculos para representações gráficas. Um ponto é composto pelas suas coordenadas x e y, um retângulo é composto por dois pontos e um círculo é definido pelo seu ponto central e raio: Ponto Retângulo Círculo X Ponto1 PontoCentro Y Ponto Raio Escreva um programa que defina os novos tipos estruturados Ponto, Retangulo e Circulo, como especificados acima. E em seguida, implemente as seguintes funções para a manipulação de objetos geométricos definidos por pontos, retângulos e círculos: criaponto a função recebe como parâmetro as coordenadas x e y e retorna a estrutura de um ponto criado com base nos parâmetros; criaretangulo a função recebe como parâmetro dois pontos e deve alocar dinamicamente a estrutura de um retângulo definido pelos pontos recebidos por parâmetro. A função deve retorna o endereço de memória para a estrutura alocada dinamicamente; criacirculo a função recebe como parâmetro o ponto central do círculo e o seu raio, e deve alocar dinamicamente a estrutura de um círculo definido pelos parâmetros. A função deve retorna o endereço de memória para a estrutura alocada dinamicamente; arearetangulo a função recebe como parâmetro o endereço de memória da estrutura de um retângulo e retorna a área deste retângulo; areacirculo a função recebe como parâmetro o endereço de memória da estrutura de um círculo e retorna a área deste círculo; distancia a função recebe como parâmetro dois pontos e retorna distancia entre estes pontos; pertence a função recebe como parâmetro um ponto e o endereço de memória da estrutura de um círculo e retorna 1 se o ponto estiver dentro do circulo ou caso não estiver. Para isso você deve utilizar a função distancia;

criacircunscrito a função recebe como parâmetro o endereço de memória da estrutura de um retângulo e retorna o maior circulo circunscrito neste retângulo. O círculo deve ser alocado dinamicamente. Utilize a main abaixo para testar o seu programa: int main (void) Retangulo *rect = criaretangulo(criaponto(1,1), criaponto(,5)); Circulo *circ = criacirculo(criaponto(,15), 1); Circulo *circ_rect; float area_circ, area_rect, dist; Ponto pt; } area_circ = areacirculo(circ); printf("area Circulo: %f\n", area_circ); area_rect = arearetangulo(rect); printf("area Retangulo: %f\n", area_rect); dist = distancia(circ->p, criaponto(rect->p1.x + ((rect->p.x - rect->p1.x)/), rect->p1.y + (rect->p.y - rect->p1.y)/)); printf("distancia entre centro do circulo e centro do retangulo: %f\n", dist); pt = criaponto(, 19); if (pertence(pt, circ) == 1) printf("o ponto pertence ao circulo!\n"); else printf("o ponto não pertence ao circulo!\n"); circ_rect = criacircunscrito(rect); printf("posicao do Circulo Circunscrito: %f %f\n", circ_rect->p.x, circ_rect->p.y); printf("raio do Circulo Circunscrito: %f\n", circ_rect->r); return ;. Implemente um programa para manipulação de polinômios, onde o tipo estruturado Termo representa um termo de um polinômio: struct termo int coef; /* coeficiente do termo*/ int grau; /* grau do termo */ }; typedef struct termo Termo; Considere que um vetor de termos é utilizado para armazenar um polinômio. Por exemplo, o polinômio 5x + x + x + (ou seja, 5x + x + 1x + x ) estaria armazenado em um vetor de Termos de tamanho 4, sempre ordenado decrescentemente por grau:

5 1 coef grau Escreva a função criavetorsoma, que Recebe um primeiro vetor de termos e seu tamanho (representando um polinômio) e um segundo vetor de termos e seu tamanho (representando um segundo polinômio). A função recebe também o endereço de uma variável onde deve ser devolvido o tamanho do novo vetor a ser criado pela função. A função deve criar um novo vetor de termos correspondente à soma dos polinômios recebidos, do tamanho exato necessário. A função retorna o novo vetor, ou seja, o endereço do primeiro elemento desse novo vetor, devolvendo também o número de elementos desse novo vetor. Por exemplo, tendo como entrada os seguintes polinômios: 5x + x + x + 5 1 x 4 + x 4 O vetor resposta, de tamanho 5, seria o correspondente ao polinômio: 5x + x 4 + x + x + 5 4 Em seguida, implemente a função principal do programa para criar dois polinômios e utilizar a função criavetorsoma para somar os dois polinômios e exibir o polinômio resultante na tela.

. O departamento de transportes do Rio de Janeiro mantem um registro de todos os carros registrados. O registro de cada carro possui as seguintes informações: Placa cadeia de caracteres identificando a placa do veiculo (máximo caracteres); Dono cadeia de caracteres identificando o nome do proprietário do veiculo (máximo 4 caracteres); Data Data de fabricação do veiculo (contendo mês e ano); Multas Número de multas associadas ao veiculo; Para criar um programa para acessar os dados do sistema do departamento de transportes você precisa implementar dois tipos estruturados: Carro e Data. Data Mês Ano Carro Placa Dono DataFab Multas Escreva um programa que defina os novos tipos estruturados Carro e Data, como especificados acima. E em seguida, implemente as seguintes funções para a manipulação dos cadastros de veículos: exibecadastro a função recebe como parâmetro uma estrutura do tipo Carro e imprime na tela todas as informações sobre o carro no formato exemplificado abaixo: ABC14 (5/) - MARIO 5 multas exibemaismultados a função recebe um vetor de Carros e exibe na tela somente os carros que tiverem mais de 5 multas. A função deve utilizar a função exibecadastro criada no item anterior. exibemaisantigo a função recebe um vetor de Carros e exibe na tela somente o registro do carro mais antigo existente. A função deve utilizar a função exibecadastro criada no item anterior. geraadvertenciamultas a função recebe como parâmetro uma estrutura do tipo Carro e retorna uma cadeia de caracteres alocada dinamicamente com o tamanho exato necessário para armazenar uma mensagem de advertência para o dono do veiculo no seguinte formato: MARIO, seu veiculo possui muitas multas!

Onde MARIO deve ser substituído pelo nome do dono do veiculo. Você deve utilizar a função strcat da biblioteca string.h para concatenar as cadeias de caracteres. geraadvertenciadata a função recebe como parâmetro uma estrutura do tipo Carro e retorna uma cadeia de caracteres alocada dinamicamente com o tamanho exato necessário para armazenar uma mensagem de advertência para o dono do veiculo no seguinte formato: MARIO, seu veiculo é muito antigo! Onde MARIO deve ser substituído pelo nome do dono do veiculo. Você deve utilizar a função strcat da biblioteca string.h para concatenar as cadeias de caracteres. exibeadvertencias a função recebe um vetor de Carros e exibe na tela mensagens de advertência para os carros que possuírem mais de 5 multas e também para os carros que tiverem mais de anos e meio. A função deve utilizar as funções geraadvertenciamultas e geraadvertenciadata criadas nos itens anteriores para gerar as mensagens de advertência. Em seguida, implemente a função principal do programa utilizando como base a main definida abaixo. O seu programa deverá primeiramente exibir os dados dos carros mais multados e também os dados do carro antigo utilizando as funções exibemaismultados e exibemaisantigo. Em seguida, utilizando a função exibeadvertencias, o programa deverá exibir as advertências para os motoristas com mais multas e que possuem carros muito antigos. int main (void) Carro vet_carros[1] = "NVY4", "Ana Silva", 5, 1}, }, "LAB549", "Pedro Duarte", 9, 4}, }, "HMF41", "Joao Filho",, }, }, "POD14", "Maria Gomes",, 1994}, 5}, "VFJ4", "Silvio Lins", 1, 199}, }, "WED45", "Marcia Morais", 1, 1991}, }, "HEL145", "Bruno Rodrigues", 1, 5}, }, "IKF5", "Thais Silva",, 199}, 4}, "WPF45", "Ricardo Costa",, 9}, 1}, "FNY159", "Julia Neves", 4, 199}, }}; //Continue a implementação do programa! return ; }