Upload
rayane-gadelha
View
10
Download
0
Embed Size (px)
DESCRIPTION
programação
Citation preview
Programao de Computadores
Jos Romildo Malaquias
DECOMUFOP
2011.1
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 1 / 55
A Linguagem C++
C++ uma linguagem de programao de propsito geral desenvolvida a partirda linguagem C com a incluso de construes para suporte programaoorientada a objetos.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 2 / 55
Tipos bsicos: tipo lgico
Tipo: boolLiterais: true , falseOperaes:not negao&& e lgico|| ou lgico
Converses:true 1false 00 falsequalquer valor 6= 0 true
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 3 / 55
Tipos bsicos: tipo caractere
Tipo: charModificadores: signed , unsignedLiterais:
Letras: a, b, . . . , ZAlgarismos: 0, 1, . . . , 9Especiais: \n, \t, \0Nmeros: 97 (o a na tabela ASCII)
Operaes: entrada e sada
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 4 / 55
Tipos bsicos: tipo inteiro
Tipo: intModificadores:
signed , unsignedshort, long, long long
Literais:Decimal: 20Octal: 020Hexadecimal: 0x20
Operaes:aritmticas: + - * / %relacionais: == != < >=
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 5 / 55
Tipos bsicos: tipos reais
Tipo: float, doubleModificadores: long, long long (aplicados ao double)Literais:
1.23.231.1.23e101.23E-101.23f
Operaes:aritmticas: + - * /relacionais: == != < >=
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 6 / 55
Tipos bsicos: tipo vazio
Tipo: voidUso:
Como tipo de retorno de uma funo no retorna um valor como resultadoComo tipo de ponteiro para um tipo indefinido (ponteiro genrico)
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 7 / 55
Variveis
A memria do computador pode ser vista como um conjunto de caixinhas nasquais podemos colocar valores.Varivel uma caixinha na memria onde armazenamos um valor.Declarao:
tipo nome;tipo nome1, . . ., nomen;tipo nome = expresso;
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 8 / 55
Estrutura de seleo em algoritmos
Utilizada quando for necessrio escolher uma entre vrias alternativas.Variaes:
estrutura condicional if elseestrutura condicional ifestrutura condicional switch
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 9 / 55
Estrutura de seleo condicional
A escolha da alternativa definida por uma condio.Uma condio uma expresso booleana, e o seu valor pode ser verdadeiroou falso.Portanto permite a escolha entre duas alternativas.A condio avaliada, podendo resultar em
verdadeiro: a primeira alternativa escolhida e a segunda ignoradafalso: a segunda alternativa escolhida e a primeira ignorada
if (condio)comando1;
elsecomando2;
condicao
comando1 comando2
V F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 10 / 55
Estrutura de seleo condicional: exemplo
Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){
int x, y;cout > x >> y;if (x > y)
cout
Estrutura de seleo condicional: exemplo
Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){
int x, y;cout > x >> y;
if (x > y)cout
Estrutura de seleo condicional: exemplo
Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){
int x, y;cout > x >> y;if (x > y)
cout
Estrutura de seleo condicional: exemplo
Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){
int x, y;cout > x >> y;if (x > y)
cout
Estrutura de seleo condicional: exemplo
Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){
int x, y;cout > x >> y;if (x > y)
cout
Estrutura de seleo condicional com uma nica alternativa
O comando executado somente se a condio for satisfeita.
if (condio)comando;
condicao
comando
V
F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 12 / 55
Estrutura de seleo condicional com uma nica alternativa:exemplo
Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){
double x;cout > x;if (x >= 0)
cout
Estrutura de seleo condicional com uma nica alternativa:exemplo
Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){
double x;cout > x;
if (x >= 0)cout
Estrutura de seleo condicional com uma nica alternativa:exemplo
Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){
double x;cout > x;if (x >= 0)
cout
Estrutura de seleo condicional com uma nica alternativa:exemplo
Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){
double x;cout > x;if (x >= 0)
cout
Estrutura de seleo mltipla: switch I
Permite a escolha de uma entre vrias alternativas.A seleo feita atravs de uma expresso de controle.Cada alternativa uma lista de comandos rotulada com uma constante(literal).A expresso de seleo e as constantes devem ser de um mesmo tipo integral(char, int, short int, long int, etc.)float, double e string no so permitidos.A lista de comandos de uma alternativa s termina com o comando break ouno final do switch.
Execuo do switch1 Avalia-se a expresso de controle.2 Seleciona-se a primeira alternativa cujo rtulo igual ao valor da expresso
de controle, e executa-se a lista de comandos correspondente.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 14 / 55
Estrutura de seleo mltipla: switch II
switch (expresso){case constante1:
comandos1;break;
case constante2:comandos2;break;
. . .case constanten:
comandosn;break;
default:comando0;
}
temp expressao
temp = constante1 comandos1
temp = constante2 comandos2
temp = constanten comandosn
comandos0
V
F
V
F
V
F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 15 / 55
Estrutura de seleo mltipla: switch III
O switch executa todos os comandos a partir da alternativa escolhida at ofinal do switch ou at encontrar o comando break.
necessrio usar o comando break no final de cada alternativa (exceto altima) para evitar que os comandos das alternativas seguintes sejamexecutados.
As alternativas so mutuamente exclusivas somente quando cada casotermina com o comando break.
Quando o valor da expresso no coincidir com aqueles especificados nasalternativas e houver a alternativa rotulada com default ento estaalternativa ser escolhida.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 16 / 55
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;
switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){
case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de seleo mltipla: exemplo
Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){
char conceito;cout > conceito;switch (conceito){case A: cout
Estrutura de repetio em algoritmos
Utilizada quando um trecho do algoritmo ou at mesmo todo o algoritmoprecisa ser repetido.O nmero de repeties pode ser fixo ou estar associado a uma condio.Existem estruturas de controle para tais situaes:
whiledo whilefor
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 18 / 55
Nmero indefinido de repeties com teste no incio
No necessrio saber o nmero de vezes que o trecho do algoritmo deve serrepetido.Baseia-se na anlise de uma condio (expresso booleana).A repetio ser feita enquanto a condio for verdadeira.
while (condio)comando;
condicao comandoV
F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 19 / 55
Nmero indefinido de repeties com teste no incio:exemplo
Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){
int contador = 1;while (contador
Nmero indefinido de repeties com teste no incio:exemplo
Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){
int contador = 1;
while (contador
Nmero indefinido de repeties com teste no incio:exemplo
Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){
int contador = 1;while (contador
Nmero indefinido de repeties com teste no incio:exemplo
Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){
int contador = 1;while (contador
Nmero indefinido de repeties com teste no incio:exemplo
Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){
int contador = 1;while (contador
Nmero indefinido de repeties com teste no incio
O comando while pode ser definido recursivamente como:
while (condio)comando;
if (condio){
comando;while (condio)
comando;}
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 21 / 55
Problemas I
1 Escreva um programa que leia um nmero inteiro, calcule e mostre o fatorialdeste nmero.
Definio recursiva de fatorial
n! ={
1 , se n = 0n (n 1)! , se n > 0
Definio interativa de fatorial
n! = 1 2 (n 1) n
Observe que ser necessrio realizar vrias multiplicaes para encontrar ofatorial: repetir as multiplicaesUtilize uma varivel auxiliar para contar de 1 at n.Utilize uma varivel para armazenar o resultado (o produto parcial).Para cada valor do contador, efetuar uma multiplicao, atualizando o produtoparcial.Ao final das repeties, o produto parcial ser o fatorial desejado.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 22 / 55
Problemas II
2 Faa um programa que leia um valor n inteiro e positivo, calcule e mostre ovalor de E , dado pelo frmula:
E = 1+11!
+11!
+12!
+13!
+ + 1n!
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 23 / 55
Problemas III
3 Faa um programa que leia as notas de seis alunos, calcule e mostre a mdiaaritmtica das notas.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 24 / 55
Problemas IV
4 Faa um programa que leia as trs notas de todos os alunos de uma turma,calcule e mostre:a) a mdia aritmtica das trs notas de cada aluno;b) a situao do aluno, dada pela tabela
mdia aritmtica situaoinferior a 3 reprovadoentre 3 (inclusive) e 7 exame especialigual ou superior a 7 aprovado
c) o total de alunos aprovados;d) o total de alunos de exame especial;e) o total de alunos reprovados;f) a mdia da turma.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 25 / 55
Nmero indefinido de repeties com teste no final
No necessrio saber o nmero de vezes que o trecho do algoritmo deve serrepetido.Baseia-se na anlise de uma condio (expresso booleana).Primeiro executa-se o trecho a ser repetido, para depois verificar a condiao.A repetio ser feita enquanto a condio for verdadeira.
docomando;
while (condio);
comando
condicao V
F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 26 / 55
Nmero indefinido de repeties com teste no final: exemplo
Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){
int numero;int quantidade = 0;cout numero;if (numero != 0)quantidade += 1;
}while (
numero != 0
);cout
Nmero indefinido de repeties com teste no final: exemplo
Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){
int numero;
int quantidade = 0;
cout numero;if (numero != 0)quantidade += 1;
}while (
numero != 0
);cout
Nmero indefinido de repeties com teste no final: exemplo
Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){
int numero;
int quantidade = 0;
cout numero;if (numero != 0)quantidade += 1;
}while (
numero != 0
);
cout
Nmero indefinido de repeties com teste no final: exemplo
Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){
int numero;
int quantidade = 0;
cout numero;
if (numero != 0)quantidade += 1;
}while (numero != 0);
cout
Nmero indefinido de repeties com teste no final: exemplo
Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){
int numero;int quantidade = 0;cout numero;if (numero != 0)quantidade += 1;
}while (numero != 0);cout
Nmero indefinido de repeties com teste no incio
O comando do while pode ser definido recursivamente como:
docomando;
while (condio);
comando;if (condio)
docomando;
while (condio);
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 28 / 55
Nmero definido de repeties
Sabe-se o nmero de vezes que um trecho do programa deve ser repetido.
for (inicialiazao; condio; incremento)comando;
1 O comando inicializao executadouma nica vez, no incio do comando derepetio.
2 A expresso booleana condio avaliada para decidir se continuarepetindo:
falso termina o comando de repetioverdadeiro repetir:a) executa o comando no corpo da
estrutura de repetiob) executa o comando incremento a
fim de alterar o estado dacomputao, preparando para aprxima repetio
c) volta na avaliao da condio em 2e repete o processo.
inicializacao
condicao comando incrementoV
F
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 29 / 55
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){
cout > n;int i;int fat = 1;for (i = 1; i
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;
int i;int fat = 1;for (i = 1; i
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;
for (i = 1; i
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i
Nmero definido de repeties: exemplo
Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i
Estruturas de Dados
Valores simples: indivisveisnmeros inteiros: 12, 324, -1324nmeros fracionrios: 0.212, -132.412, 78.13e-17caracteres: B, @, nbooleanos: true, falseValores compostos: formados por partes:registro de um livro na biblioteca:
ttuloautoreditoraano publicao
notas dos alunos em uma prova:nota do primeiro alunonota do segundo aluno...nota do ltimo aluno
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 31 / 55
Estruturas de Dados
Valores compostos so estruturas de dados.Estruturas homogneas: todos os componentes so do mesmo tipo.
vetores
Estruturas heterogneas: os componentes podem ser de diferents tipos.registros (structs)unies
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 32 / 55
Vetores
VetorEstrutura formada por uma sequncia de variveis do mesmo tipo.Identificadas por um nico nome.Cada componente identificado por um ndice, um nmero inteiro quereferencia sua localizao dentro da estrutura.Em C++ os ndices utilizados para identificar as posies em um vetorcomeam sempre em 0 (zero) e vo at o tamanho do vetor menos umaunidade.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 33 / 55
Vetores
DeclaraoNa declarao de uma varivel vetor especificamos:
o tipo dos componentes do vetoro nome da varivelo nmero de componentes que formam o vetoros elementos do vetor (opcional)
tipo nome[tamanho];tipo nome[n] = { e0, e1, . . ., en1 };tipo nome[] = { e0, e1, . . ., en1 };
Exemplos:
int notas[10];bool resultados[2*n+3];double alfa[3] = { 1.2, -0.45, 5.5 };string mensagens[] = { "comeco", "meio", "fim", "end" };
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 34 / 55
Vetores
IndexaoOperao bsica com vetor: indexaoPermite selecionar um componente especfico da estrutura pela sua posio(ndice)O ndice do primeiro elemento 0 (zero)O ndice do ltimo elemento o tamanho do vetor menos um
vetor[ndice]
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 35 / 55
Vetores
Exemplo: exibe um elemento do vetor
string mensagens[] = { "comeco", "meio", "fim", "end" };cout
Vetores
Exemplo: modifica um elemento do vetor
int vet[] = { 10, 20, 30 };vet[2] = 2*vet[0] + vet[1] - vet[2];cout
Vetores
Exemplo: exibe todos os elementos do vetor
int vet[] = { 10, 20, 30 };for ( int i = 0; i < 3; i++)cout
Vetores
Exemplo: preenchendo um vetor
cout > tamanho;
double vet[tamanho];
for ( int i = 0; i < tamanho; i++){
cout
Vetores
Exemplo: mdia dos elementos do vetor
const int n = 5;double notas[n] = { 1.1, 2.2, 3.3, 4.4, 5.5 };double soma = 0.0;for ( int i = 0; i < n; i++)
soma += notas[i]double media = soma / n;
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 40 / 55
Vetores: Problemas I
ProblemaFaa um programa que leia as notas dos alunos de uma turma, determine e mostrea mdia das notas, e o nmero de alunos com notas superiores ou iguais mdia.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 41 / 55
Vetores: Problemas II
ProblemaFaa um programa que simule o lanamento de um dado com vinte jogadas.Mostrar os nmeros sorteados e a frequncia com que apareceram.
Para gerar nmeros aleatrios em C++, temos duas funes que trabalham deforma semelhante:
rand
random
Estas duas funes geram nmeros aleatrios de 0 a RAND_MAX (definido nabiblioteca stdlib.h). Se voc quiser gerar valores randmicos em umadeterminada faixa numrica, basta fazer assim:
numero = rand() % valor_maximo;
ou
numero =random() % valor_maximo;
Para us-las, porm, necessrio inicializar o gerador de nmeros aleatrios com afuno srand.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 42 / 55
Vetores: Problemas III
ProblemaUma pequena loja de artesanato possui um vendedor e comercializa dez tipos deobjetos. O vendedor recebe, mensalmente, salrio de R$ 400,00, acrescido de 5%do valor total de suas vendas. O valor unitrio dos objetos deve ser informado earmazenado em um vetor; a quantidade vendida de cada pea deve ficar em outrovetor, mas na mesma posio. Crie um programa que receba os preos e asquantidades vendidadas, armazenando-os em seus respectivos vetores (ambos comtamanho dez). Depois, determine e mostre:
um relatrio contendo quantidade vendida, valor unitrio e valor total decada objeto; ao final, dever ser mostrado o valor geral das vendas e o valorda comisso que ser paga ao vendedor;o valor do objeto mais vendido e sua posio no vetor (no se preocupe comempates).
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 43 / 55
Vetores: Problemas IV
ProblemaFaa um programa que preencha um vetor com os modelos de cinco carros(exemplos de modelos: fusca, gol, vectra, etc.), carregue outro vetor com oconsumo desses carros, isto , quantos quilmetros cada um deles faz com umlitro de combustvel, calcule e mostre:
o modelo de carro mais econmico,quantos litros de combustvel cada um dos carros cadastrados consome parapercorrer uma distncia de de mil quilmetros.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 44 / 55
Matrizes
matriz: varivel composta homognea multidimensional.Formada por uma sequncia de variveis, todas do mesmo tipo, com omesmo nome, e alocadas sequencialmente na memria.Os componentes so identificados por um conjunto de ndices.Utiliza-se um ndice para cada dimenso.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 45 / 55
Matrizes
DeclaraoNa declarao de uma varivel matriz especificamos:
o tipo dos componentes da matrizo nome da varivelo nmero de componentes que formam cada dimenso da matrizos elementos do vetor (opcional)
tipo nome[dimenso1][dimenso2]...[dimensoN];
Exemplos:
int notas[2][6];float y[2][4][3];char mat [4][3] [= { { A, E, I },
{ 6, 5, 4 },{ #, @, = },{ m, n, z }
};Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 46 / 55
Matrizes
IndexaoPermite selecionar um componente especfico da estrutura pela sua posio,dada por um conjunto de ndices.
Exemplos:
int mat[2][4] = { { 10, 20, 30, 40}, {9, 8, 7, 6} };
// acessar um elemento da matrizcout
Matrizes
Problema 1Obter do usurio uma matriz m3x2, calcular e mostrar a matriz r3x2 resultante damultiplicao de todos os elementos de m pelo seu maior elemento.
Problema 2Faa um programa que preencha uma matriz 10x3 com as notas de dez alunos emtrs provas. O programa dever mostrar um relatrio com o nmero dos alunos(nmero da linha) e a prova em que cada aluno obteve menor nota. Ao final dorelatrio, dever mostrar quantos alunos tiveram menor nota em cada uma dasprovas: na prova 1, na prova 2 e na prova 3.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 48 / 55
Registros
Registros so estruturas de dados capazes de agregar vrias informaes.Os componentes de um registro so chamados de campos.Os campos podem ser de tipos diferentes.Por isto registros so estruturas de dados heterogneas.Os tipos registro so novos tipos de dados definidos pelo programador, deacordo com a sua necessidade.Em C++ os registros so chamados de struct.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 49 / 55
Registros: Uso
Utiliza-se a palavra reservada struct para declarar um novo tipo registro.A seleo de um componente feita pelo operador . (ponto).
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 50 / 55
Registros: Exemplo de uso
// declaracao de um tipo registrostruct conta_bancaria{
int numero;string titular;double saldo;
};
// declaracao de variaveis de tipo registrostruct conta_bancaria conta1;struct conta_bancaria conta2 = { 10231, "Ivo Mascarenhas", 125.45 };struct conta_bancaria todas_as_contas[10];
// acesso aos componentes de um registrocout
Registros: Problema 1
Problema 1Faa um programa que realize o cadastro de contas bancrias com as seguintesinformaes: nmero da conta, nome do cliente, e saldo. O banco permitir ocadastramento de apenas 15 contas e no poder haver mais que uma conta como mesmo nmero. Crie o menu de opes a seguir e implemente cada uma dasopes.
Menu
1 - Cadastrar nova conta2 - Visualizar todas as contas de determinado cliente3 - Excluir a conta com menor saldo0 - Terminar
Escolha uma opcao:
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 52 / 55
Registros: Problema 2
Problema 2Crie um programa para ler o cdigo, o sexo (M masculino; F feminino) e onmero de horas/aula ministradas pelos professores de uma escola durante umms. Sabe-se que um professor ganha R$40,50 por hora-aula. Aps a leitura, oprograma dever mostrar:
uma listagem contendo o cdigo, o salrio bruto, o desconto calculado deacordo com a tabela 1, e o salrio lquido de todos os professores;a mdia aritmtica dos salrios brutos dos professores do sexo masculino;a mdia aritmtica dos salrios brutos dos professores do sexo feminino.
sexo at 70 horas/aula ao ms mais que 70 horas/aula ao msmasculino 10% 8%feminino 7% 5%
Tabela: Descontos salariais
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 53 / 55
Funes: Problemas
1 Elabore um programa contendo uma sub-rotina (funo) que receba as trsnotas de um aluno como parmetros e uma letra. Se a letra for A, asub-rotina dever calcular a mdia aritmtica das notas do aluno; se for P,dever calcular a mdia ponderada, com pesos 5, 3 e 2. A mdia calculadadever ser devolvida ao principal para, ento, ser mostrada.
2 Faa um programa com uma funo que receba como parmetro a hora deincio de a hora de trmino de um jogo, ambas subdivididas em dois valoresdistintos: horas e minutos. A funo dever retornar a durao expressa emminutos, considerando que o tempo mximo de durao de um jogo de 24horas e que ele pode comear em um dia e terminar no outro.
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 54 / 55
FIM
Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 55 / 55