Mostrando postagens com marcador C. Mostrar todas as postagens
Mostrando postagens com marcador C. Mostrar todas as postagens

quarta-feira, 3 de janeiro de 2018

Problema da recursão para analisar posições vizinhas em um mapa ou tabuleiro


Neste laboratório, devemos criar um programa que explore a recursão em que, dado um mapa de um setor, seja capaz de determinar quantas bases do Império e quantas bases rebeldes estão presentes naquela região.

Na matriz, o caractere '*' representa parte de uma base do Império, o caractere '#' representa parte de uma base dos rebeldes e o caractere '-' representa uma área não construída; as bases não possuem uma forma geométrica definida.

terça-feira, 2 de janeiro de 2018

Problema dos anagramas através de uma função recursiva


O objetivo deste programa em C abaixo é gerar todos os anagramas de uma palavra.

Um anagrama de uma palavra é uma permutação das suas letras a fim de formar uma outra palavra. Por exemplo, ator é um anagrama da palavra rota.

segunda-feira, 1 de janeiro de 2018

Problema dos apontadores, parâmetros argc, argv e manipulação dos pixels de um arquivo .ppm


O objetivo do programa em C abaixo é implementar 3 filtros: escala de cinza, esticar contraste e normalizar, em uma imagem/arquivo do formato ppm.

sexta-feira, 29 de dezembro de 2017

Problema das operações sobre um vetor de structs


Neste programa em C abaixo, o objetivo é implementar funções de um programa que gerencia uma base de dados com registros acadêmicos de alunos contendo as seguintes informações para cada aluno:  RA, nome do aluno e telefone.

As operações que poderão ser realizadas sobre a base de dados são i) adição/edição de um aluno; ii) busca de um aluno; iii) remoção de um aluno; e iv) impressão de um registro. As funções para estas operações estão em um arquivo separado da função main. Neste laboratório, não há a necessidade de se preocupar com a entrada, apenas com a manipulação do vetor passado por parâmetro.

quinta-feira, 28 de dezembro de 2017

Problema da alocação dinâmica de memória com operações sobre conjuntos


Neste laboratório você deve implementar funções que realizam operações sobre conjuntos com tamanho máximo indeterminado.

Como o tamanho máximo dos conjuntos são indeterminados, usaremos alocação dinâmica para alterar o tamanho dos conjuntos em tempo de execução. Os conjuntos serão representados por um vetor e dois inteiros, tamanho e capacidade. O tamanho indica a quantidade de elementos que o conjunto contém e capacidade indica o tamanho do vetor alocado para o conjunto. Desta forma o conjunto consegue armazenar até capacidade elementos. Se o vetor ficar cheio e novos elementos precisarem ser inseridos no conjunto, temos que realocá-lo para um vetor maior. De forma similar, se muitos elementos forem removidos de um conjunto, o vetor alocado deverá ser diminído para ocupar menos espaço em memória.

quarta-feira, 27 de dezembro de 2017

Problema do Rational Tangle Dance - ocorrência de padrões


O objetivo deste laboratório é usar funções para manipular strings por meio de um programa que consiga prever o estado final de duas cordas (separadas ou emaranhadas) após a execução de uma sequência de movimentos '+', '-' e '*'.

terça-feira, 26 de dezembro de 2017

Problema da ordenação, busca, remoção e inserção de elementos de um vetor


O objetivo deste programa em C abaixo é: dada uma lista inicial de RAs de alunos matriculados em uma turma, realizar as seguintes operações: p - Imprimir; c - Ordenar crescentemente; d - Ordenar decrescentemente; b - Realizar uma busca binária; i - Inserir; e r - Remover.

segunda-feira, 25 de dezembro de 2017

Problema de operações sobre conjuntos


O objetivo do programa em C abaixo é, dada uma entrada que consiste de operações a serem realizadas sobre dois conjuntos nomeados de A e B, executar essas operações.

Os conjuntos iniciam vazios e cada linha da entrada descreve uma operação a ser realizada sobre um ou entre os dois conjuntos. Cada operação deve ser realizada através de uma função chamada pela main, que se encontra em um arquivo separado; deste modo, funções em outro arquivo deverão ser criadas e deverão ser capazes de realizar operações referentes a: pertence, contido, adição, subtração, união, interseção, diferença e complemento, todas obedecendo a descrição referente dada no comentário que a antecede.

sexta-feira, 22 de dezembro de 2017

Problema de apagar, inverter e substituir palavras em um texto


O objetivo deste programa programa em C é realizar operações com palavras a fim de editar um texto (string ou array) a partir de comandos que podem ser: D - Apagar; I - Inverter (a ordem dos caracteres); R - Substituir; e Q - Sair do programa. Sendo, estas (D, I, R), operações com palavras. As palavras têm caracteres maiúsculos e minúsculos considerados iguais (ou seja, o programa é case insensitive).

A entrada consiste em um texto de até 1000 caracteres, e para cada operação o texto alterado deve ser exibido na tela como saída, e, antes de todas as outras saídas, também o texto original deve ser mostrado.

quarta-feira, 20 de dezembro de 2017

Problema de encontrar palavras-chave num texto ou string


O objetivo deste programa em C abaixo é decodificar o significado de um texto secreto que é mandado pela equipe que fornece informações de ataque para a base, que controla os canhões.

Dado um texto (uma string), deve-se percorrê-lo para encontrar quais palavras-chave estão presentes e informar a direção e elevação, de acordo com seus significados, para que o canhão da base seja direcionado. Pode-se haver mais de um par de dados, porém sempre estando na ordem: uma direção seguida de uma elevação.

Observações:
O programa deve ser case insensitive, ou seja, deve entender a letra maíuscula como igual à sua correspondente minúscula.

Palavras-chaves:
Direção
mercurio = N
venus = NE
terra = L
marte = SE
jupiter = S
saturno = SO
urano = O
netuno = NO

Elevação do canhão
verde = 30
amarelo = 45
vermelho = 60

Problema da soma e subtração com números gigantes - overflow


O objetivo deste programa em C abaixo é fazer as operações de soma e subtração entre dois inteiros positivos grandes, dando como resultado da operação outro inteiro com até 30 dígitos.

O programa ainda possui um controle de erro para verificar se o valor do resultado tem mais de 30 dígitos, além do possível sinal de negativo ('-').

A entrada deve ser, por exemplo:
81
-
132

E a saída, nesse caso, deve ser:
000000000000000000000000000081
000000000000000000000000000132
-51

Problema de desenhar quadrado, triângulo e losango na tela a partir da altura


O objetivo deste programa em C abaixo é obter um valor para a altura de três possíveis formas geométricas e desenhar a forma escolhida na tela dentro de uma moldura.

As formas geométricas possíveis são: quadrado, triângulo e losango. Como diz o enunciado, a entrada consiste (1) num inteiro que será a altura da forma geométrica e (2) seu tipo, e a saída deve ser um desenho dessa forma, dando atenção a uma moldura que deverá ser criada entorno do objeto.

terça-feira, 19 de dezembro de 2017

Problema dos ternos possíveis


O objetivo do programa em C abaixo é calcular todos os ternos possíveis dado um valor a, que refere-se ao valor de um dos catetos do triângulo retângulo. A ideia é utilizar laços encaixados.

Problema de realizar a dobra com sua espaçonave


Neste problema em C abaixo não só devemos calcular a possibilidade de realizar uma dobra da nossa espaçonave, verificando antes se temos tempo e combustível necessários, mas também considerar que nossa nave está perdendo combustível incessantemente e atualmente está vazia, porém sendo reabastecida em movimento; logo ela deve realizar a dobra assim que seu tanque tiver o necessário de combustível antes que o tempo acabe.

A entrada consiste no tempo disponível e na quantidade de combustível necessária para realizar a dobra. Em seguida temos uma série de valores de entrada, um valor para cada unidade de tempo, que significa o fluxo de combustível no tanque.

Na saída deve-se dizer se a dobra foi realizada ou não e em que tempo.

Problema do mínimo, máximo e média na entrada dos dados


O objetivo do programa em C abaixo é ler uma lista de números (quantidade definida pelo usuário) e desta lista mostrar no final do programa o menor valor, o maior valor e a média aritmética dos valores. Tudo isso usando o for e sendo realizado durante a inserção dos valores.

Problema do balanceamento da carga


O objetivo do programa em C abaixo é conferir se dados quatro valores é possível agrapá-los em dois grupos de igual valor. Sendo eles os valores/pesos de 4 containers, determinar se é possível estabelecer um balanceamento da carga perfeito, ou seja, se é possível dividir a carga na parte traseira e dianteira da espaçonave de tal forma que o peso na parte traseira seja igual ao peso na parte dianteira.

Problema do caminhão de reabastecimento


O objetivo deste programa em C abaixo é verificar se o combustível existente no cilindro (de diâmetro d e comprimento h) do caminhão de João é capaz de suprir as demandas dos postos A, B e C; estes recebendo combustível se sua demanda for menor ou igual ao que há no caminhão.

Neste problema, João passa do posto A para o posto B e depois para o posto C, sempre nesta sequência.

Problema do tempo para ativar o micro explosivo


O objetivo do programa em C abaixo é calcular quanto tempo esperar para ativar o micro explosivo de tal forma que a força de empuxo resultante desvie a bomba para atingir a base de reabastecimento do Império.
Entrada: altura; velocidade de queda da bomba; distância da base rebelde até a base do Império; força de empuxo do micro explosivo.

Saída: tempo, em segundos, para acionar o micro explosivo (três casas decimais).

Problema da distância percorrida pelo taxista


O objetivo do programa em C abaixo é calcular quanto um passageiro terá que pagar para uma determinada viagem a um taxista em um mapa em que os quarteirões possuem as mesmas medidas e as ruas são paralelas e perpendiculares uma as outras.

Entrada: valor do pagamento inicial; as coordenadas de origem e de destino do passageiro; a taxa por cada unidade de distância percorrida.

Saída: valor a ser pago pelo passageiro através da fórmula vi + d*t.