Vous êtes sur la page 1sur 30

Programador(a) de Informática

Módulos
Módulo 1 – Algoritmos 25H
Módulo 2 – Estrutura de dados 25H
Módulo 3 – Programação em C - fundamentos 50H
Módulo 4 – Programação em C - avançada 50H
Módulo 5 – Programação em COBOL - fundamentos 50H
Módulo 6 – Programação em COBOL - ficheiros e interatividade
50 H
Programação em C - avançada - Mod 4

 Definir e manipular tipos de dados compostos;


 Estrutura de dados apropriada.

 Compreender o conceito de apontador


 Conhecer as regras de declaração de apontadores
 Identificar as operações para manipulação de apontadores
 Utilizar estruturas dinâmicas lineares
 Distinguir apontador de estrutura dinâmica
Array bidimensional
tipo nome_variável [altura][largura];
Ex: int tabela[2][3];
são armazenados (em endereços consecutivos de memória) como
tabela[0][0], tabela[0][1], tabela[0][2], tabela[1][0], tabela[1][1], tabela[1][2]

Declaração de um vetor bidimensional de inteiros, contendo 2 vetores de 3


elementos cada um  int tabela[2][3];
Array bidimensional
Se for string:
char nome_variável [num_de_strings][comprimento_das_strings];

char palavras[5][10];

Cria um vetor de 5 palavras, com capacidade de armazenamento de 10


carateres em cada uma.

char palavras[3][10] = { "Joao", “Vera", “Miguel" };


Para escrever a terceira palavra armazenada no vetor escrevemos:
puts(palavras[2]);
O que daria Miguel.
Array bidimensional
Atribuição de valores para o array bidimensional tabela, com 20 elementos
do tipo inteiro:
int tabela[4][5] = {{13, 15, 17, 19, 21},{20, 22, 24, 26, 28},{31, 33, 35, 37, 39},
{40, 42, 44, 46, 48} };
pode ser imaginado como um array unidimensional de 4 elementos do tipo
int[], ou seja, arrays de int;
Cada um dos 4 elementos é um array de 5 elementos do tipo int:
tabela[0] ---> {13, 15, 17, 19, 21}
tabela[1] ---> {20, 22, 24, 26, 28}
tabela[2] ---> {31, 33, 35, 37, 39}
tabela[3] ---> {40, 42, 44, 46, 48}
Array bidimensional

multi[0] = {'0','1','2','3','4','5','6','7','8','9'}
multi[1] = {'a','b','c','d','e','f','g','h','i','j'}
multi[2] = {'A','B','C','D','E','F','G','H','I','J'}
multi[3] = {'9','8','7','6','5','4','3','2','1','0'}
multi[4] = {'J','I','H','G','F','E','D','C','B','A'}

Ao mesmo tempo, elementos individuais podem ser endereçados usando a


sintaxe:
multi[0][3] = '3';
multi[1][7] = 'h';
multi[4][0] = 'J';
Exercícios
É bastante comum utilizar a estrutura for encaixados para aceder aos
elementos de um vetor bidimensional (matriz):
int matriz[3][4]; Desta forma o array tem 3 filas e 4 colunas

main()
{
int matriz[3][4],i,j;
for (i=0; i<3; i++) // ciclo para inserir os elementos
for (j=0; j<4; j++)
{
printf("Insira um numero: ");
scanf("%d", &matriz[i][j]);
}
for (i=0; i<3; i++) // outro ciclo para imprimir os elementos
for (j=0; j<4; j++)
printf("Numeros inseridos-->%d \n", matriz[i][j]); exmatriz.c
getch();
}
Exercícios
Faça um programa que calcule a média de um aluno. Para iniciar a
operação, serão fornecidas as 8 disciplinas e depois terá que pedir para
inserir a respetiva nota.
char disc [8][10] = {"PSI","AC","TIC","AI","MAT","INGLES","PORT","E.F" };

notavet.c
Exercícios
Faça um programa que calcule o
total de centilitros de água da chuva
caída em 4 cidades: Porto, Aveiro,
Coimbra e Lisboa. Esse programa
terá que pedir para inserir os
centilitros que caíram as: 8,11,14 e
17 horas respectivamente. No final
terá que enviar cá para fora os
totais…
chuva.c
Exercícios

Faça um programa que peça


para inserir os elementos da
matriz_um e os elementos da
matriz_dois.
Depois multiplique os elementos
da matriz_um pelo elementos da
matriz_dois e mostre o resultado
numa matriz resultante.

prodmatriz.c
Exercícios
Faça a inserção de valores para uma matriz 3X2 e multiplique a 2ª coluna por
2 e de seguida some todos os elementos dessa matriz com 1.

Matriz3_2.c
Estruturas (Struct)

Num vetor armazenamos variáveis do mesmo tipo, nas estruturas


armazenamos variáveis de tipos diferentes.
Para declarar variáveis do tipo struct, usa-se a seguinte sintaxe:
Exemplo:
struct nome_da_estrutura struct pessoa
{ {
tipo campo1, campo2; int idade;
… char nome[30];
} v1, v2, … , vn; float salario;
} paulo, teresa;

Variáveis do tipo da
estrutura pessoa
Estruturas (Struct)
As estruturas podem conter elementos de qualquer tipo de dados.

struct data
{
int dia;
char mes [10];
int ano;
Variáveis do tipo da estrutura data
} aniversario, natal;

Neste exemplo, data não é uma variável, mas antes o nome pela qual é
conhecida esta nova definição de tipo de dados.
Estruturas (Struct)

Declaração de dados nas variáveis do tipo estrutura.

exstruct.c
Estruturas (Struct)
Para aceder ao membro de uma estrutura usa-se o operador ponto (.)
struct individuo
{
int dia,ano;
char mes[10];
} Edson, Ricardo;
main()
{
Edson.dia = 23;
strcpy (Edson.mes, “Fevereiro”);
Edson.ano = 1998;
printf (“Data de nascimento do Edson: %d/%s/%d\n”, Edson.dia, Edson.mes,
Edson.ano);
}
Exercícios

Construa um programa que permita guardar a informação referente


aos dados da classificação de três clubes de futebol, nomeadamente
nomes dos clubes (utilize inicias ex:”scp”, “cfb” e “aac”), pontos
obtidos, golos marcados e sofridos, jogos efetuados e indique se o
saldo do clube é positivo ou negativo. Considera-se saldo positivo se o
clube tiver tantos ou mais pontos que o número de jogos efetuados.

Depois mostre todos os dados do programa. futebol.c


Nota: quando for ler a string nome, use scanf para ler as iniciais do
clube.
Exercícios
2.Escreva um programa que permita ler os dados de cinco jogadores de
basquetebol. Cada jogador possui os seguintes campos: número da
camisola, nome, posição e idade. Faça com que o programa possua um
menu com as seguintes opções e implemente o código necessário:
Inserir Jogadores basquetbol.c
Procurar jogador pelo número da camisola
Listar todos os jogadores
Sair
Exercícios
Exercícios
1.Escreva um programa que permita ler os dados de cinco alunos. Cada
estrutura possui os seguintes campos:
nome, número, localidade e idade.
Depois mostre no ecrã todos dados guardados na estrutura e indique ainda
qual o aluno mais velho. structalunos.c

2.Escreva um programa que permita ler os dados de cinco jogadores de


basquetebol. Cada jogador possui os seguintes campos: número da
camisola, nome, posição e idade. Faça com que o programa possua um
menu com as seguintes opções e implemente o código necessário:
Inserir Jogadores
Procurar jogador pelo número da camisola
Listar todos os jogadores
basquetbol.c
Sair
Exercícios
Faça um programa que permita guardar dados sobre quatro corporações
de bombeiros, para isso deverá perguntar e guardar a quantidade de fogos
que apagaram em Junho, Julho e Agosto.

•Deve mostrar os dados organizados de cada uma das corporações.

•Deve mostrar qual foi o valor mais alto e mais baixo de cada uma das
corporações.

•Pergunte um mês ao utilizador e após ter sido encontrado ele mostra a


quantidade total de fogos que houve nesse mês.
bombeiros.c
Exercícios
Uma clínica necessita de um sistema informático que permita registar os
dados dos seus trinta pacientes. Para cada paciente é aberta uma ficha com
o seu número de ficha, nome, sexo, idade, localidade e telemóvel.
O programa deverá apresentar o seguinte menu:
*********************CLÍNICA VIDA-ETERNA*********************
** A – Inserir os trinta pacientes
clinica.c
** B – Listar os dados dos trinta pacientes
** C – Procurar um paciente (baseado no seu numero de paciente)
** D – Dizer quantos elementos do sexo feminino e do masculino
** E – Dizer qual é o paciente mais velho e o mais novo
** X – Sair
**********************************************************************
Elabore um programa, utilizando estruturas, que para cada uma das opções
do menu faça a função respetiva.
Exercícios
Faça um programa que permita guardar dados sobre três nadadores, para
isso deverá perguntar e guardar os seus cinco melhores tempos.

•Deve mostrar os dados organizados para cada um dos nadadores.


•Deve mostrar qual o melhor e o pior tempo de cada um dos nadadores.
•Deve dizer ainda qual o melhor e o pior tempo dos três nadadores.

nadadores.c
Exercícios
Considerando um vetor (array) de 12 elementos que permite guardar
valores reais elabore um programa em C para:
 mostrar o número da sua posição no vetor e o seu conteúdo;
 mostrar o conteúdo das posições ímpares do vetor;
 mostrar a soma de todos os valores do vetor.
Deve utilizar ciclos de repetição em cada um dos itens.
vetor12.c

Criar um programa em C que leia os elementos de uma matriz inteira de 3


x 3 e imprima outra matriz multiplicando cada elemento da primeira matriz
por 2.
Exemplo: 5 4 3 10 8 6
9 5 6 18 10 12 matriz3.c
4 1 7 8 2 14
Exercícios

Escreva um programa que permita ler os dados de 24 pilotos de fórmula


1. O registo de cada piloto possui os seguintes campos: nome, número
de piloto, idade e o nome da equipa pela qual corre atualmente.
O programa deverá apresentar o seguinte menu:
1 - Inserir pilotos
2 - Procurar piloto pelo seu número
3 - Listar pilotos
4 – Média das idades de todos os pilotos
0 - Sair
formula1.c
Exercícios
Elabore um programa que armazene em três vetores diferentes (um para
cada disciplina), notas de 6 alunos em três disciplinas.

Calcular a média de cada aluno nas três disciplinas e guardar noutro vetor
esses valores.

No final deve mostrar o conteúdo do vetor média e mostrar uma


mensagem para cada aluno:

“aprovado” se média for maior ou igual 9.5;


4vetores.c
“reprovado” se a média for menor.
Exercícios
Um lar de idosos necessita de um sistema informático que permita registar os
dados dos seus 42 pacientes. Para cada paciente é aberta uma ficha com o
seu número de ficha (automático), nome, sexo, idade, localidade e telefone.
O programa deverá apresentar o seguinte menu:
******************* LAR - MAIS PERTO DO CÉU *******************
** 1 – Inserir os 42 pacientes
** 2 – Listar os dados dos 42 pacientes
** 3 – Dizer qual é o paciente mais velho e o mais novo lar.c
** 4 – Mostrar todos os pacientes com mais de 60 anos
** 5 – Dizer quantos pacientes do sexo feminino e do masculino
** 0 – Sair
**********************************************************
Elabore um programa, utilizando estruturas, que para cada uma das opções
do menu faça a função respectiva.
Exercícios
Elabore um programa que peça o
nº de alunos de uma turma, em
seguida terá que inserir as notas
relativas às disciplinas que contém
essa turma: PSI, AC, etc. Depois
de inseridas as notas terá que
fazer a média para cada um dos
alunos, e no fim dizer quem é que
teve pior resultado e quem teve
melhor resultado.

Notasdisc.c
Exercícios
Peça os dados de 3 professores…

imcprof.c
Exercícios
Utilize 2 estruturas diferentes uma para os clientes e outra para os produtos.

Stock.c

Vous aimerez peut-être aussi