Buscar

Correção da Prova 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
Sistemas de Informação
Correção da Prova 1
Ana Luiza Magalhães
BETIM
2024
1- Implemente duas funções para somar os algarismos de um número inteiro positivo. A
primeira implementação deve ser sem recursão. A segunda deve ser com recursão.
Observação: Não serão aceitas implementações que converta o número inteiro para texto
em alguma etapa do algoritmo.
Sem recursão :
static void Main(string[] args)
{
Recursao(92);
Console.ReadKey();
}
static void Recursao(int x) {
int valorUn = x ;
int dec=0;
int result;
while (valorUn > 10) {
valorUn = valorUn - 10;
dec++;
}
result = dec + valorUn;
Console.WriteLine(result);
}
Com recursão :
static int comRecursao(int x, int deci)
{
x = x - 10;
deci = deci + 1;
if (x < 10)
{
return deci + x;
}
else
{
return comRecursao(x, deci);
}
}
2- Método para duplicar elementos (não-recursivo). Implemente um método na classe Pilha
chamado DuplicarElementos() que duplica cada elemento da pilha. Use uma pilha auxiliar
para manter a ordem dos elementos. Exemplo: Para uma pilha com elementos [1, 2, 3],
após a duplicação, a pilha deve ter [1, 1, 2, 2, 3, 3].
public void DuplicarElementos()
{
Stack<int> auxiliar = new Stack<int>();
foreach (int elemento in elementos)
{
auxiliar.Push(elemento);
auxiliar.Push(elemento);
}
elementos.Clear();
foreach (int elemento in auxiliar)
{
elementos.Push(elemento);
}
}
3-Método para se uma fila está cheia (não-recursivo). Implemente um método na classe Fila
chamado IsCheia() que retorna verdadeiro se a fila está cheia e, caso contrário retorna
falso.
class Fila
{
public Queue<int> elementos;
private int capacidade;
public Fila(int capacidade)
{
this.capacidade = capacidade;
elementos = new Queue<int>(capacidade);
}
public void Enfileirar(int item)
{
elementos.Enqueue(item);
}
public bool IsCheia()
{
return elementos.Count == capacidade;
}
}
4-Método para inverter uma fila. Implemente um método na classe Fila chamado Inverte()
que inverte a ordem dos elementos da fila. Observação: Não utilizar o método Reverse().
class Fila
{
public Queue<int> elementos;
public Fila()
{
elementos = new Queue<int>();
}
public void Enfileirar(int item)
{
elementos.Enqueue(item);
}
public void Inverte()
{
Stack<int> pilhaAuxiliar = new Stack<int>();
while (elementos.Count > 0)
{
pilhaAuxiliar.Push(elementos.Dequeue());
}
while (pilhaAuxiliar.Count > 0)
{
elementos.Enqueue(pilhaAuxiliar.Pop());
}
}
public void Imprimir()
{
foreach (int item in elementos)
{
Console.WriteLine(item);
}
}
}
5-Considerando a coleção Queue<int> do C#, qual será a saída do programa abaixo:
static void Main(string[] args)
{
Queue<int> q = new Queue<int>();
q.Enqueue(8);
q.Enqueue(5);
Console.WriteLine(q.Peek());
Console.WriteLine(q.Dequeue());
q.Enqueue(1);
q.Enqueue(4);
Console.WriteLine(q.Dequeue());
q.Enqueue(2);
Console.WriteLine(q.Peek());
Console.ReadKey();
}
A saida será: 8,8,5,1
6-Considerando a coleção Stack<int> do C#, qual será a saída do programa abaixo:
static void Main(string[] args)
{
Stack<int> s = new Stack<int>();
s.Push(8);
s.Push(5);
Console.WriteLine(s.Peek());
Console.WriteLine(s.Pop());
s.Push(1);
s.Push(4);
Console.WriteLine(s.Pop());
s.Push(2);
Console.WriteLine(s.Peek());
Console.ReadKey();
}
A saida será: 5,5,4,2
7- No C#, a classe que representa uma coleção do tipo último que entra, primeiro que sai
(LIFO) é:
(A) ArrayList (B) Hashtable (C) Queue (D) Stack
8- O comando correto utilizado para instanciar a classe Cliente é: :
(A) Cliente objCliente = Cliente();
(B) Cliente objCliente = new Cliente();
(C) Cliente objCliente = new C();
(D) objCliente = Cliente();
9- Denominação dada quando uma função ou procedimento realiza uma ou mais chamadas
a ela mesma é:
(A) Iteração (B) Repetição (C) Recursão (D) Laço
10- Veja o código a seguir:
public class Lista
{
private int[] array;
private int n;
public Lista() : this(6) { }
public Lista(int tamanho)
{
array = new int[tamanho];
n = 0;
}
public void inserirInicio(int x);
public void inserirFim(int x);
public void inserir(int x, int pos);
public int removerInicio();
public int removerFim();
public int remover(int pos);
public void mostrar();
}
Implementação Solicitada: Procedimento inserirInicio(int x). Enunciado: Considere os
seguintes fragmentos de código. Qual combinação implementa corretamente o método
inserirInicio(int x) na classe Lista? Fragmentos de código:
if (n == 0) return;
if (n >= array.Length) throw new Exception(“Erro ao inserir!”);
for (int i = n; i > 0; i--) array[i] = array[i- 1];
Console.WriteLine(‘‘Inserindo elemento no início.”);
array[0] = x; n++;
(A) ii, iv (B) i, iii (C) ii, iii, v (D) iv, i

Continue navegando