2007-03-26

Array's em C (2)

  1. Dada uma matriz a[n][m] determinar a matriz que resulta de:
    1. Trocar o menor elemento de cada linha i pelo elemento maior;
    2. Deslocar a primeira coluna para a segunda, a segunda para a terceira, ... , a n-ésima para a primeira;
    3. ordenar a matriz considerando o seguinte critério: a linha i é maior do que a linha j se na coluna de menor índice em que os elementos diferem, o elemento da linha i é maior do que o da linha j.
  2. Dadas duas matrizes de inteiros a[n][m] e b[m][k] calcular a matriz c[n][k] correspondente ao produto matricial de a por b.
  3. Dada uma matriz quadrada de inteiros a[n][n]
    1. calcular a sua transposta.
    2. substituir cada componente de a[][] não pertencente aos limites (4 cantos: superior, inferior, esquerdo e direito) pela média aritmética dos seus 8 vizinhos.
  4. Dada uma matriz com 1000 linhas e 7 colunas representando 1000 sorteios do totoloto (para valores inteiros de 1 a 52) calcular:
    1. Para cada sorteio o número de pares de números consecutivos;
    2. Os 3 números que ocorrem mais vezes;
    3. A maior sequência de números consecutivos.
  5. Simulação do jogo do galo. O jogo do galo joga-se num tabuleiro de 3x3 e dois jogadores. Cada jogador coloca alternadamente um 1 ou um 2 numa das quadriculas e ganha o que colocar 3 peças em linha (horizontal, vertical ou diagonal principal). O tabuleiro é representado por uma variável indexada a[2][2] que contém as jogadas feitas, supondo-se que se o jogador i jogou numa certa posição então o conteúdo dessa posição é i, para i=1,2. Se uma posição ainda não foi jogada o conteúdo de a nessa posição é 0. Nenhum jogador pode jogar numa posição já preenchida e o jogo termina empatado se todas as posições estão ocupadas e nenhum jogador ganhou. Em cada jogada deve ser imprimido o tabuleiro, isto é, a. No início o programa deve pedir o nome de cada um dos jogadores e imprimir o nome do jogador que ganhar.
  6. Simulação do jogo 5 em linha.
  7. Objectivo do Jogo
    Dois jogadores preenchem alternadamente as posições dum tabuleiro N×N, N>4. Um joga com peças 0 e o outro joga com peças 1. Ganha o jogo, o primeiro jogador que conseguir colocar 5 peças consecutivas na mesma direcção: numa linha, coluna ou diagonal (faz 5 em linha). O jogo termina - empatado - se já não houverem posições para preencher com peças. Supõe-se que inicialmente todas as posições do tabuleiro contêm o símbolo X.
    Regras do Jogo

    Os dois jogadores jogam alternadamente. Em cada jogada, um jogador selecciona uma posição da matriz indicando apenas a coluna c (de 1 a N) em que pretende jogar. Se a coluna c estiver toda preenchida, e, ainda restarem posições livres noutra coluna, terá de escolher uma dessas colunas livres. A posição em que ficará a sua peça será a corresponde à linha de maior numeração ainda livre, nessa coluna. Isto é, para uma dada coluna c, a primeira posição a ser preenchida é a (c,N), a segunda a (c,N-1), a terceira a (c,N-2), ... No fim de cada jogada, o computador terá de avaliar se o jogador ganhou o jogo. Para isso, basta verificar se com a peça que jogou conseguiu fazer 5 em linha. Note que não é necessário percorrer todas as posições do tabuleiro, mas apenas as posições que estão na mesma linha, coluna ou diagonais da última peça jogada.

    O programa a desenvolver deve, em cada jogada:
    • mostrar o tabuleiro
    • indicar qual o jogador que deve jogar
    • pedir ao jogador que seleccione uma coluna
    • verificar se o jogador fez 5 em linha
    • verificar se o jogo terminou e indicar o vencedor
    • permitir a continuação do jogo

Estruturas em C (2)

(Manipulação duma base de dados de livros) Suponha que para cada livro existe informação sobre os seguintes campos:
Título
80 caracteres
Autor1
20 caracteres (Nome Próprio)
Autor2
20 caracteres (Apelido)
Ano de Edição
inteiro sem sinal
Tema
40 caracteres
  1. Defina uma estrutura em C para guardar a informação anterior e defina uma variável indexada que contenha 100 elementos dessa estrutura.
  2. Escreva funções que permitam:
    1. Introduzir um novo livro (pelo terminal);
    2. Leitura dos dados de um ficheiro, supondo que no ficheiro cada campo é guardado numa linha; para optimizar as pesquisas pode guardar a informação ordenada (lexicograficamente) pelo campo Autor2;
    3. Retirar a informação de um livro da base de dados;
    4. Guardar a informação da base de dados num ficheiro;
    5. Procurar um livro por: Título ou Autor2;
    6. Produzir os seguintes relatórios:
      1. listagem de todos os livros
      2. listagem de todos os livros de um autor;
      3. listagem de todos os livros de um tema;
      4. listagem de todos os livros editados num mesmo ano;
      Para cada um dos relatórios, deve ser pedido ao utilizador para seleccionar quais os campos que pretende que sejam listados.
  3. Escreva um interface que após lida a base de dados, usando a função definida em , permita ao utilizador selecionar uma das tarefas:
    1. Introduzir novo livro
    2. Procurar por autor
    3. Procurar por titulo
    4. Retirar um livro;
    5. Relatórios
    6. Terminar
    Se for selecionada a tarefa 5. o utilizador ainda deverá escolher qual dos relatórios e qual a informação a imprimir.

2007-03-16

Funções em C (1)

Crie programas e funções em linguagem C para resolver os seguintes problemas:

  1. Dado um valor e a taxa do iva, crie uma função que devolva o preço a pagar (preço com iva incluido)
  2. Dado um valor e a taxa de desconto, crie uma função que devolva o preço final a pagar
  3. Crie uma função que processe os salários dos trabalhadores independentes atendendo às seguintes condições:
    1. a função recebe o valor hora (em euros) a pagar e o tempo (horas)
    2. ao valor bruto tem de ser acrescido iva de 21%
    3. ao valor bruto tem de ser deduzido a taxa de IRS em 20%
    4. Deverá ser apresentado ao utilizador, o valor bruto, o valor a pagar do iva, o valor deduzido para o IRS e o valor liquido que o trabalhador recebe.

2007-03-15

Estruturas em C (1)

Gestão de Cursos ...


Crie uma base de dados em C, através de estruturas de forma a guardar os seguintes dados:
5
Programacao Imperativa
1
Calculo Infinitesimal I
1
Programacao Estruturada
1
Probabilidades e Estatistica
2
Modelos de Computacao
2

6
Joao Diogo Silva
2001018001
1
2
Mariana Pinto Matias
2001018003
4
1
4
2
3
Anabela Moreira
2004018014
3
1
3
2
Sonia Silva
1999018015
1
1
Manuel Pereira
2001019005
2
3
2
Carlos Santos
2004019007
3
1
2
3




No exemplo anterior Programacao Imperativa é a disciplina 1 e Programacao Estruturada
a disciplina 3. Note também que Programacao Imperativa será a primeira disciplina a ocorrer na estrutura
de dados Disc, enquanto Programacao Estruturada será a terceira.

Os quatro primeiros dígitos dos códigos dos alunos representam o ano, os três seguintes o código do curso e os três últimos identificam o
aluno. O primeiro número que está a seguir ao código do aluno indica o número de disciplinas em que está inscrito.
Os números seguintes identificam essas disciplinas.

Dada uma base de dados contendo informação sobre alunos e disciplinas de cursos duma faculdade, pretende-se consultá-la para:
  • obter o número de alunos inscritos a cada disciplina

    Output: o título da tabela é Numero de alunos inscritos. A seguir tem uma linha de intervalo e depois a informação pedida para cada disciplina, obedecendo ao formato nome_disciplina : total_inscritos

  • obter as disciplinas que têm mais alunos dum dado curso inscritos

    Output: o título é Disciplinas com mais alunos do curso codigo_curso , segue-se linha de intervalo, e depois os nomes das disciplinas.
    A linha final contem o número de disciplinas nas condições indicadas e o número de alunos inscritos em cada uma delas, seguindo o formato,
    Total = número_disciplinas Maximo = numero_de_alunos.

  • imprimir, por ordem alfabética, a lista de alunos dum dado curso que entraram num dado ano.

    Output: o título é Alunos do curso código_do_curso que entraram em ano. São indicados depois todos os alunos nas condições pretendidas, código_do_aluno nome_do_aluno, e finalmente, o número total desses alunos (Total = número_alunos). Existirá uma linha de intervalo a seguir ao título e antes da linha final.
    NB: O programa não deverá alterar a base de dados, nem copiar integralmente o seu conteúdo para outra estrutura de dados auxiliar.

  • para uma dada disciplina (identificada pelo seu nome), determinar os cursos que têm o maior número de alunos inscritos nessa disciplina ou um número que não difira desse mais do que k unidades, para k dado.
    NB: Para contar quantos alunos de cada curso estão inscritos à disciplina dada, o programa só deverá percorrer a estrutura Alunos uma única vez. Nessa passagem, deve identificar os cursos existentes.

Deverao ser criadas 2 estruturas que agreguem a informação que se pretende, uma chamada aluno e outra disciplina

2007-02-01

Array's em C

1. Ler 10 números e:
-verificar se estão por ordem crescente;
-indicar o máximo,
-indicar o mínimo;
-indicar a media;

2. Implementar uma função que diga se um elemento faz parte de um array.

3. Implementar uma função que dados 2 vectores imprima todos os elementos que são comuns.

4. Implemente uma função que dado um vector e um número n, diga quantos elementos são maiores que n, menores que n e iguais a n.

5. Implemente uma função que imprima um array por ordem inversa.

2007-01-26

Repetições em C

1 - Faça um programa que calcule a soma de dez números inteiros dados pelo utilizador.

2 - Faça um programa que calcule a soma n números inteiros consecutivos que começam num valor dado pelo utilizador. Exemplo:
Input:

Quantos números? 10
Inicia em que valor?5
Output:
5
6
7
8
9
10
11
12
13
14

3 - Faça um programa que calcule n factorial. Use a precisão dupla para o cálculo de , porque,
embora seja um valor inteiro, o seu cálculo rapidamente conduz a valores elevados. O programa
deve ainda não aceitar valores de n que sejam negativos ou que originem um cálculo de superior
ao limite da precisão dupla . A formula do n factorial é: n! = n * (n-1) * (n-2) * ... * 2 * 1

4 - Faça um programa que leia dois valores inteiros e que visualize:
? A mensagem ?Valores iguais? se os valores lidos forem iguais;
? A lista dos inteiros compreendidos entre os valores introduzidos (inclusive) por ordem crescente.

5 - Faça um programa que leia uma sequência de números inteiros longos e que conte o número de valores pares e o número de valores ímpares. A leitura dos números termina quando o utilizador introduzir o valor 0, o qual já não faz parte da sequência.

6 - Faça um programa que leia um número inteiro longo maior que 100 e que determine se o algarismo das unidades se repete no número.

7 - Faça um programa que determine todos os números inteiros positivos de três algarismos que obedeçam simultaneamente às seguintes condições: sejam múltiplos de 5, não sejam múltiplos de 7 e a soma dos seus algarismos seja 10.

8 - Faça um programa que, dado um número inteiro longo, verifique se é negativo e, caso não o seja, determine se é ou não capicua.

2006-10-31

Exercícios em C (3) (actualizado a 7-11-2006)

  1. Escreva um programa em C de forma a obter o seguinte output:


    1. 2481632
      641282565121024
      2048409681921638432768

      Nota: de um elemento da tabela para a outra o valor anterior é multiplicado por 2
    2. Produza o mesmo output de forma a que os números apareçam alinhados à direita.

  2. Produzir uma tabela com 3 colunas, a primeira contendo os inteiros de 1 a 10, a segunda os respectivos quadrados e a terceira os respectivos cubos.

  3. Fazer um programa que faça a conversão entre números na base binária, decimal e octal.
    Sugestão: Faça um menu em que o utilizador escolhe o tipo de número que vai introduzir e depois de lido esse número, apresentar a sua conversão nos outros 2 tipos. Utilize funções para fazer as conversões entre as várias bases.

2006-10-26

Exercícios em C (2) (actualizado a 7-11-2006)

  1. A tabela seguinte apresenta factores de conversão entre algumas unidades de comprimento, volume e massa:
    Polegada para Centímetros ×2.54
    Pés para Metros ×0.3048
    Libras para Quilogramas ×0.45359
    Galões para Litros ×3.7854

    Escreve um programa em C para converter estas unidades. O programa deve começar por apresentar um menu das opções (numeradas de 1 a 4) e só depois pedir o valor a converter. Usa a directiva #define para definir os valores de conversão.

  2. Escreva programas em C para os seguintes problemas:
    1. Converter um tempo em segundos para horas, minutos e segundos. E vice-versa.
    2. Introduzidos dois tempos, cada um em horas (0-23), minutos (0-59) e segundos, e sendo o maior o primeiro, determina a diferença entre eles e escreve-a, também, em horas, minutos e segundos.
    3. Dadas três horas, no formato HH:MM:SS, (H1, H2 e H3), em que H1
      1. H1+H2+H3;
      2. H3-H2-H1;
      3. H3-H2

2006-10-16

Exercícios em C (1)

  1. Implemente um programa de indique se o número lido é positivo ou negativo
  2. Calcule os primeiros 10 múltiplos de 2
  3. Calcule as primeiras 10 potências de 2
  4. Generalizar os exercícios anteriores utilizando constantes
  5. Ler 3 números e calcular:
    1. o maior;
    2. o menor;
    3. o intermédio;
    4. o resultado da soma dos 3 números;
    5. o resultado da multiplicação dos 3 números;
  6. Implemente um programa que adicione 5€ ao salário de um funcionário, caso este seja inferior a 500€.
  7. Escreva um programa que leia 2 números e os apresente por ordem crescente
  8. Escreva um programa que leia um salário e mostre o imposto a pagar:
    1. se o salário for negativo ou zero mostrar o erro respectivo;
    2. se o salário for maior que 1000€ paga 10% de imposto, senão paga 5%
  9. Escreva um programa que dado um salário calcule o Salário Bruto, Salário Liquido e Imposto a pagar:
    1. salário menor que 1000€, taxa 5%;
    2. salário maior ou igual a 1000€ e menor que 5000€, taxa 11%;
    3. salário maior ou igual a 5000€, taxa 35%
Bom Trabalho !

2006-10-03

TIA

Programa:

Programação em C
Programação em C# .NET
Porgramação em Visual Basic .NET
Programação em ASP .NET


teste 1

GPSI

GPSI - 10º

Exercícios em C (3)

Elenco Modular da Disciplina Programação e Sistemas de Informação:

  1. Introdução à Programação e Algoritmia
  2. Mecanismos de Controlo de Execução
  3. Programação Estruturada
  4. Estruturas de Dados Estáticas
  5. Estruturas de Dados Compostas
  6. Estruturas de Dados Dinâmicas
  7. Tratamento de Ficheiros
(a linguagem que vai ser utilizada é o C)

Folhas de Exercícios:
Exercícios em C (1)
Exercícios em C (2)

CEF

CEF