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

Documentos relacionados
Lista de Exercícios 1

INF 1620 P3-29/06/04 Questão 1 Nome:

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

Exercícios: Vetores e Matrizes

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

Trabalho de Programação 2 Processador CESAR

Atenção! Siga as instruções a seguir:

2. Escreva um programa em C para ler uma temperatura em graus Celsius, calcular e escrever o valor correspondente em graus Fahrenheit.

ponteiros INF Programação I Prof. Roberto Azevedo

Exercícios de Linguagem C

4ª Lista de Exercícios de Programação I

LISTA DE EXERCÍCIOS - ro. 04

Exercícios: Arquivos

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Atenção! Siga as instruções a seguir:

Lista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números

Vetores. e o programa deverá ler os valores separadamente:

Instituto Federal de Minas Gerais - Campus avançado de Ponte Nova - IFMG Disciplina: Introdução a programação Professor: Saulo Henrique Cabral Silva

LISTA DE EXERCÍCIOS 2

Disciplina de Algoritmos e Programação

CADERNO DE EXERCÍCIOS ALGORITMOS

Capítulo 6: Arquivos

Informática Aplicada I Lista: Fluxograma

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Quarta Aula Prática - 17 de abril de 2013

PROGRAMAÇÃO DE COMPUTADORES I - BCC Vetores e matrizes

2ª Lista de Exercícios

4ª Série de Exercícios Variáveis Compostas Homogêneas 1. Faça um algoritmo que leia, via teclado, 10 valores do tipo inteiro e os guarde na memória.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

Disciplina: Algoritmos e Programação Professor: Paulo César Fernandes de Oliveira, BSc, PhD

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

3ª Lista de Exercícios de Programação I

Exercícios sobre algoritmos

Tipo m= matriz [ l i1 : l s1, l i2 : l s2 ] <tipo básico> m: mat

Estruturas Homogêneas II (Matrizes)

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Aula 9 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

5ª Lista de Exercícios de Programação I

Vetores Unimensionais

Estruturas de Dados Estáticas Cont.

Variáveis, Tipos de Dados e Operadores

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Programação de Computadores Profa Jacqueline 1

Programação: Vetores

<identificador>[<tamanho>]: <tipo>;

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

INF 1620 P1-14/04/07 Questão 1 Nome:

Matrizes. DCC 119 Algoritmos

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

1ª Lista de Exercícios

Vetores e Matrizes. Conceito. Conceito. Conceito. Conceito. Conceito. Variáveis Compostas Homogêneas. Matriz

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Lista de Exercícios STRING LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI.

Exercícios TVC2 PARTE I:

Algoritmos e Lógica de Programação. Prof. Marcos Antonio Estremoe. 1 - Faça um programa que imprima a frase: Bem Vindo à Engenharia Firb 2014.

1 ESTRUTURA SEQUENCIAL

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Questão 1. Nome para o arquivo fonte questao1.c

1. [VETOR][SALA] Cálculo da média aritmética de 10 valores armazenados em um vetor.

SEGUNDA LISTA DE EXERCÍCIOS ALGORÍTMOS SEQUENCIAS E CONDICIONAIS

Grupo B Estruturas de Repetição

Linguagem C: Introdução

cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo

Algoritmo e Programação Matemática

Programação Universidade da Beira Interior Departamento de Informática 2007/08

Exercícios: Arquivos

Lista de Exercícios Estrutura de Repetição

LISTA DE EXERCÍCIO. 2) Fazer um algoritmo para calcular a soma entre dois números e multiplicar o resultado pelo primeiro.

9. imprimir o fatorial do número 10. imprimir o sucessor e o anterior de um número lido 11. Imprimir se um número é primo ou não 12. Imprimir os 100 p

Curso: Técnico em Informática Integrado Disciplina: Algoritmos Carga horária: 60h (80h/a) Período: 2º Ano Professor: Edmilson Barbalho Campos Neto

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

LISTA DE EXERCÍCIOS. 1.2) Escreva um programa para ler o raio de um círculo, calcular e escrever a sua área (Fórmula: πr 2 ).

Lista de Exercícios 06 Revisão para a prova

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

INF 1620 P1-11/04/03 Questão 1 Nome:

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

LISTA DE EXERCÍCIOS MÊS 04

Apresentação da ferramenta de programação. Comandos de entrada e saída. Prof. Alex Camargo

3 x, a função int abs(int x) para calcular o valor absoluto (módulo) de

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

Matrizes esparsas: definição

Working 03 : Conceitos Básicos II

Algoritmos e Estruturas de Dados II IEC013

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

UNIFEI - UNIVERSIDADE FEDERAL DE ITAJUBÁ MATEMÁTICA

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010

LINGUAGEM C: ARRAY: VETORES E MATRIZES

ESTRUTURA DE DADOS VETORES E LISTAS LINEARES

Transcrição:

INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO 1. Implemente uma função chamada calcula_circulo que calcule a área e a circunferência de um círculo de raio r. A função deve obedecer ao seguinte protótipo: void calcula_circulo(float r, floar *area, float *circunferencia); Em seguida crie a função principal de um programa que utilize a função calcula_circulo para calcular a área e a circunferência de um círculo de raio r informado pelo usuário. 2. Escreva uma função que calcule as raízes reais de um polinômio de segundo grau dado os seus coeficientes. A função deve obedecer ao seguinte protótipo: int calc_raizes(double coef_x2, double coef_x1, double coef_x0, double *raiz1, double *raiz2); As variáveis coef_x2, coef_x1 e coef_x0 são os coeficientes do polinômio. A função deve retornar o número de raízes (0, 1, 2 ou -1). O valor -1 indica um número infinito de raízes (caso o polinômio tenha os coeficientes de x2, x1 e x0 iguais a zero). Além disso, as variáveis raiz1 e raiz2 são ponteiros para variáveis cujos valores serão atualizados pela função e conterão as raízes calculadas. Caso o número de raízes seja 2, o conteúdo apontado pelas duas variáveis será atualizado; caso o número de raízes seja 1, apenas o conteúdo apontado pela raiz1 será atualizado. Nos outros casos, não haverá atualizações. A função calc_raizes deverá usar, em sua implementação, uma outra função auxiliar para calcular o valor de delta, com seguinte protótipo: double calc_delta(double coef_x2, double coef_x1, double coef_x0); Após implementar as funções, escreva um programa principal que solicitará do usuário a digitação dos coeficientes e exibirá, ao final, o número de raízes e seus valores, quando for o caso. 3. No modelo de cores RGB, as cores vermelho, verde e azul são combinadas de várias maneiras para reproduzir outras cores. Qualquer cor, nesse modelo, pode ser descrita pela indicação da quantidade de vermelho, verde e azul que contém. a) Faça uma função que receba o número da cor (inteiro) e coloque os valores de R, G e B (inteiros) nas variáveis cujos endereços são fornecidos na chamada da função. A tabela abaixo define os valores de R, G e B para cada número de cor.

b) Faça um programa que, a partir da leitura via teclado da matrícula (inteiro) e do número da cor preferida (inteiro) de cada aluno de uma turma, escreva na tela a matricula do aluno seguida dos valores de R, G e B da cor escolhida. O programa deve verificar se o número da cor digitado é valido e obrigatoriamente deve utilizar a função descrita no item a. O programa deve continuar lendo a matricula e a cor até que a matricula 0 seja digitada. 4. Considere uma tabela com os resultados de um campeonato de futebol, onde os resultados dos times são dispostos numa ordem qualquer. Como ilustrado a seguir, para cada time registrasse total de pontos ganhos (PG), número de vitórias (V), número de empates (E), número de derrotas (D), número de gols pró (GP) e número de gols contra (GC). Considere ainda que os números da tabela são representados em uma matriz de valores inteiros. Cada linha da matriz representa os resultados de um determinado time. Na primeira coluna da matriz armazena-se o número de pontos ganhos, na segunda o número de vitórias e assim por diante. a) Escreva uma função que retorne o número do time com o melhor saldo de gols. A função deve receber como parâmetros o número de times, n, e a tabela com os resultados, tab, e deve obedecer ao seguinte protótipo: int melhorsaldo(int n, int tab[][6]);

b) Escreva uma função que retorne o número do time que está na liderança. A liderança é determinada pelo time que tiver maior número de pontos ganhos. Se um ou mais times tiverem o mesmo número de pontos, _e usado o seguinte critério de desempate: número de vitórias e saldo de gols, nesta ordem. Se, mesmo assim, dois ou mais times empatarem, deve-se retornar o número de um dos times líderes. A função deve receber como parâmetros o número de times, n, e a tabela com os resultados, tab, e deve obedecer ao seguinte protótipo: int lider(int n, int tab[][6]); c) Escreva uma função que retorne o número do time que está em _ultimo lugar na classificação, obedecendo o mesmo critério de classificação do item anterior. Se dois ou mais times empatarem em todos os critérios, deve-se retornar um dos times que está em último lugar. A função deve receber como parâmetros o número de times, n, e a tabela com os resultados, tab, e deve obedecer ao seguinte protótipo: int ultimo(int n, int tab[][6]); d) Escreva um programa que leia a tabela de resultados de um arquivo e teste suas funções. 5. Considere n cidades numeradas de 0 a n-1 que estão interligadas por uma série de estradas de mão única. As ligações entre as cidades são representadas pelos elementos de uma matriz quadrada Lnxn, cujos elementos lij assumem o valor 1 ou 0, conforme exista ou não estrada direta que saia da cidade i e chegue à cidade j. Assim, os elementos da linha i indicam as estradas que saem da cidade i, e os elementos da coluna j indicam as estradas que chegam à cidade j. Por convenção lii = 1, mas atenção, uma ligação da cidade para ela mesma não deve ser contada como saída nem entrada da cidade. A figura abaixo mostra um exemplo para n = 4 e seu código pode considerar uma matriz L de tamanho 4x4. Para cada uma das questões abaixo, você deve desenvolver a função solicitada e também testa-la através de chamadas na função principal do programa. a) Escreva uma função que recebe a matriz de ligações L e um índice de cidade k, e escreve na tela quantas estradas saem e quantas chegam à cidade k (só considerar estradas e saídas diretas). Exemplo de saída para k=0: Existe 1 estrada(s) que chega(m) na cidade 0 e 2 estrada(s) para sair.

b) Escreva uma função que recebe a matriz de ligações L e retorne o índice da cidade onde chegam o maior número de estradas. c) Escreva uma função que recebe a matriz de ligações L e um índice de cidade k, e testa se todas as ligações diretas entre a cidade k e outras são de mão dupla. Caso seja de mão dupla a função retorna 1, ou retorna 0 para o caso contrário. d) Escreva uma função que recebe a matriz de ligações L e um vetor C de tamanho igual ao número de cidades. A função escreve no vetor C para cada cidade se ela é (1) ou não é (0) isolada, isto é, se não têm ligação com nenhuma outra. Os índices

das posições no interior de C representam as respectivas cidades. Exemplo: C[5] deve ser preenchido avaliando se a sexta cidade é ou não isolada. e) Escreva uma função que recebe a matriz de ligações L e escreva em um arquivo chamado avisos.txt uma mensagem alertando cada uma das cidades que são fim de linha, ou seja, as cidades das quais não há saída, apesar de haver entrada. Sua função deve escrever no arquivo a seguinte mensagem para cada cidade fim de linha encontrada em L: Atenção a cidade XXX é fim de linha, não há saídas dela! f) Escreva uma função que recebe a matriz L e um vetor com uma sequência de m inteiros cujos valores estão entre 0 e o número de cidades 1. A sequência de inteiros no vetor representa um roteiro percorrendo as cidades de destino em destino. Sua função deve verificar se é possível realizar o roteiro correspondente e nesse caso retornar 1 ou se não é possível, por não haver estradas ligando as cidades desejadas na ordem do roteiro. No exemplo dado, o roteiro representado pela sequência (m=5) 2 3 2 1 0 é impossível.

função descrita no item a. O programa deve continuar lendo a matricula e a cor até que a matricula 0 seja digitada. 6. Crie um programa que retorne dia seguinte de uma data informada pelo usuário. Lembre-se que o dia seguinte pode ser em outro mês ou até mesmo outro ano. a) Crie uma função com nome diaseguinte que possui três parâmetros, ambos ponteiros para inteiros representando endereços de memória onde estão armazenados o conteúdo de dia, mês e ano, respectivamente, para formar uma data. A função diaseguinte deve modificar as variáveis dia, mês e ano, de forma que eles representem o dia seguinte. b) Crie um programa que leia 30 datas (dia, mês e ano), e para cada, mostre o seu dia seguinte.