Escolar Documentos
Profissional Documentos
Cultura Documentos
Valor: 30 pontos
Resumo:
O ‘stack’ é a região de memória onde ficam alocadas as variáveis locais dos programas, aquelas
variáveis que são definidas em tempo de compilação, ou seja, estáticas. De modo bem simplificado,
podemos dizer que o que sobrou de memória do sistema é o ‘heap’. É nessa região que iremos alocar
variáveis que são definidas em tempo de execução do programa, ou seja, dinâmicas. Em C++, utilizamos
os operadores new e delete para alocar e desalocar memória do heap.
#include <iostream>
using namespace std;
int main() {
int i=5, *p;
p = &i;
cout << p << '\t'
<< (*p+2) << '\t'
<< **&p<< '\t'
<< (3* *p) << '\t'
<< (**&p+4);
}
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int *v;
int n;
cout << "\n\tInforme o tamanho do vetor: ";
cin >> n;
/*
* continue seu programa aqui...
*/
return 0;
}
7) Refaça o programa do exercício 6, utilizando funções para preencher e imprimir o vetor. Os protótipos
das funções deverão ser:
8) Refaça o programa do exercício 7. Agora iremos alocar memória para o vetor v utilizando uma
função. Essa nova função deverá ter o seguinte protótipo:
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS – CAMPUS NEPOMUCENO
GRADUAÇÃO EM ENGENHARIA ELÉTRICA
LABORATÓRIO DE PROGRAMAÇÃO DE COMPUTADORES II
PROFA. ROSANA MASSAHUD
int* criaVetor(int n);
9) Refaça o programa do exercício 8. Agora iremos desalocar memória do vetor v utilizando uma
função. Essa nova função deverá ter o seguinte protótipo:
10) Fazer um programa que receba do usuário a quantidade N de números a ser digitada. Em seguida, o
programa deve alocar dinamicamente um vetor de N inteiros, receber N números do usuário e
armazenar no vetor, e mostrar o maior valor do vetor, o menor valor do vetor e a média dos valores.
11) Escreva uma função que recebe uma string de caracteres e uma letra e devolve um vetor de inteiros
contendo as posições (índices no vetor da string) onde a letra foi encontrada) e um inteiro contendo o
tamanho do vetor criado (total de letras iguais encontradas). Utilize o retorno de um vetor para
retornar os índices e um ponteiro para guardar o tamanho do vetor.
Poderíamos resolver esse exercício alocando o vetor de forma estática e escrevendo a função
procuraChar sem retorno (void) e simulando o retorno com uma passagem de parâmetro por
referência do vetor de posições. O protótipo poderia ser o seguinte: void procuraChar(char*
str, char c, int& qtde, int* pos)
Mas, resolva esse exercício escrevendo a função procuraChar devidamente como se pede. O protótipo
deve ser o seguinte:
int* procuraChar(char* str, int tam, char c, int& qtde)
12) Seja o seguinte trecho de programa em C++, que cria um novo tipo de dado (struct) “Livro”. Um
“Livro” para nós será uma “coisa” que tem título, nome do autor, número de páginas e ISBN.
Na função principal temos a variável a do tipo Livro, e uma referência para Livro, b.
Complete o programa alocando dinamicamente memória para b. Atribua valores para cada membro de
dados, para a e b. Imprima os dados para a e b.
Obs.: Utilize o operador ponto (.) para acessar membros de dados de variáveis do tipo struct. E o
operador seta (->) para acessar membros de dados de ponteiros para struct.
13) Refaça o programa do exercício 12, mas agora crie uma função para capturar os valores de uma
variável do tipo Livro e uma função que imprima os dados de membros de struct Livro.
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS – CAMPUS NEPOMUCENO
GRADUAÇÃO EM ENGENHARIA ELÉTRICA
LABORATÓRIO DE PROGRAMAÇÃO DE COMPUTADORES II
PROFA. ROSANA MASSAHUD
Possíveis assinaturas das funções:
void cadastro(Livro *livro);
void imprime(const Livro *livro);
14) Refaça o programa do exercício 13. Agora crie dinamicamente uma lista de Livros:
Implemente a função listaBiblioteca, que deverá percorrer todo o vetor de Livros, imprimindo os
dados para cada Livro. O protótipo deve ser:
Na função principal, implemente os controles necessários para chamar o menu de opções e chamar
as funções adequadamente de acordo com a opção escolhida pelo usuário.