Вы находитесь на странице: 1из 12

Crie a função public ArrayList CopiaArrayList(ArrayList origem) que copia todos os dados do ArrayList

origem e retorna o novo ArrayList criado. Atenção: para esse exercício não será permitido usar os métodos
Clone() e CopyTo().

public int QtdeOcorrencias(ArrayList AL, Object elemento)


{
elemento = 5;
int qtd = 0;
for (int i = 0; i < AL.Count; i++)
{
if (AL[i].Equals(elemento))
{
qtd = qtd + 1;
}

return qtd;
}

2 Crie a função public ArrayList CopiaQueueParaArrayList(Queue origem), que copia todos os dados
do Queue origem e retorna o novo ArrayList criado. Atenção: para esse exercício não será permitido
usar os métodos Clone() e CopyTo().

public ArrayList CopiaQueueParaArrayList(Queue origem)


{
ArrayList copia = new ArrayList();

foreach (object item in origem)


{
copia.Add(item);
}

return (copia);
}

5 – Crie o procedimento public void ApagaArrayList2(ArrayList origem, int inicio, int qtde), o qual apaga
todos os qtde elementos à partir da posição determinada pelo parâmetro início. Atenção: não é permitido
usar o método RemoveRange(), apenas Remove() e RemoveAt().

public void ApagaArrayList2(ArrayList origem, int inicio, int qtde)


{

for (int i = inicio; i < origem.Count; i++)


origem.RemoveAt(qtde);
}
6 – Crie a função public ArrayList ConcatenaArrayList(ArrayList AL1, ArrayList AL2), o qual retorna um
novo ArrayList como todos os elementos de AL1 e AL2.

public ArrayList ConcatenaArrayList(ArrayList AL1, ArrayList AL2)


{
newAL = new ArrayList();

foreach (var item in AL1)


{
if (AL2.Contains(item))
{
newAL.Add(item);
AL2.Remove(item);
}
else
{
newAL.Add(item);
}
}

foreach (var item in AL2)


{
newAL.Add(item);
}

return newAL;
}

8.1 – Crie a função public ArrayList Intersecao(ArrayList AL1, ArrayList AL2) que retorna um ArrayList
contendo os elementos em comum armazenados em AL1 e AL2, sem repetição.

public ArrayList Intersecao(ArrayList AL1, ArrayList AL2)


{
newAL = new ArrayList();

foreach (var item in AL1)


{
if (AL2.Contains(item))
{
newAL.Add(item);
AL2.Remove(item);
}
else
{
newAL.Add(item);
}
}

foreach (var item in AL2)


{
newAL.Add(item);
}
}
12 – Crie a função public Queue CopiaQueue(Queue origem) a qual retorna uma cópia da Queue origem
passada como parâmetro. Os elementos da Queue origem devem permacer na mesma ordem
original. Atenção: não é permitido usar os métodos Clone() e CopyTo() da classe Queue.

public Queue CopiaQueue(Queue origem)


{
Queue copia = new Queue();

foreach (object item in origem)


{
copia.Enqueue(item);
}
return (copia);
}

* 18 – Um biólogo precisa de um programa que traduza uma trinca de nucleotídeos em seu


aminoácido correspondente. Por exemplo, a trinca de aminoácidos ACG é traduzida como o aminoácido
Treonina, e GCA em Alanina. Crie um programa em C# que use um Hashtable para criar um dicionário do
código genético. O usuário deve digitar uma trinca (chave) e seu programa deve mostrar o nome (valor)
do aminoácido correspondente. Use a tabela abaixo para cadastrar todas as trincas/aminoácidos.
static void Main(string[] args)
{
string trinca;
Hashtable Aminoacido = new Hashtable();
Aminoacido.Add("UUU", "FenilAlanina");
Aminoacido.Add("UUC", "FenilAlanina");
Aminoacido.Add("UUA", "Leucina");
Aminoacido.Add("UUG", "Leucina");
Aminoacido.Add("CUU", "Leucina");
Aminoacido.Add("CUC", "Leucina");
Aminoacido.Add("CUA", "Leucina");
Aminoacido.Add("CUG", "Leucina");
Aminoacido.Add("AUU", "IsoLeucina");
Aminoacido.Add("AUC", "IsoLeucina");
Aminoacido.Add("AUA", "IsoLeucina");
Aminoacido.Add("AUG", "Metionina");
Aminoacido.Add("GUU", "Valina");
Aminoacido.Add("GUC", "Valina");
Aminoacido.Add("GUA", "Valina");
Aminoacido.Add("GUG", "Valina");
Aminoacido.Add("UCU", "Serina");
Aminoacido.Add("UCC", "Serina");
Aminoacido.Add("UCA", "Serina");
Aminoacido.Add("UCG", "Serina");
Aminoacido.Add("CCU", "Prolina");
Aminoacido.Add("CCC", "Prolina");
Aminoacido.Add("CCA", "Prolina");
Aminoacido.Add("CCG", "Prolina");
Aminoacido.Add("ACU", "Treonina");
Aminoacido.Add("ACC", "Treonina");
Aminoacido.Add("ACA", "Treonina");
Aminoacido.Add("ACG", "Treonina");
Aminoacido.Add("GCU", "Alanina");
Aminoacido.Add("GCC", "Alanina");
Aminoacido.Add("GCA", "Alanina");
Aminoacido.Add("GCG", "Alanina");
Aminoacido.Add("UAU", "Tirosina");
Aminoacido.Add("UAC", "Tirosina");
Aminoacido.Add("UAA", "Códon de parada");
Aminoacido.Add("UAG", "Códon de parada");
Aminoacido.Add("CAU", "Histidina");
Aminoacido.Add("CAC", "Histidina");
Aminoacido.Add("CAA", "Glutamina");
Aminoacido.Add("CAG", "Glutamina");
Aminoacido.Add("AAU", "Asparagina");
Aminoacido.Add("AAC", "Asparagina");
Aminoacido.Add("AAA", "Lisina");
Aminoacido.Add("AAG", "Lisina");
Aminoacido.Add("GAU", "Ácido aspártico");
Aminoacido.Add("GAC", "Ácido aspártico");
Aminoacido.Add("GAA", "Ácido glutâmico");
Aminoacido.Add("GAG", "Ácido glutâmico");
Aminoacido.Add("UGU", "Cisteína");
Aminoacido.Add("UGC", "Cisteína");
Aminoacido.Add("UGA", "Códon de parada");
Aminoacido.Add("UGG", "Triptofano");
Aminoacido.Add("CGU", "Arginina");
Aminoacido.Add("CGC", "Arginina");
Aminoacido.Add("CGA", "Arginina");
Aminoacido.Add("CGG", "Arginina");
Aminoacido.Add("AGU", "Serina");
Aminoacido.Add("AGC", "Serina");
Aminoacido.Add("AGA", "Arginina");
Aminoacido.Add("AGG", "Arginina");
Aminoacido.Add("GGU", "Glicina");
Aminoacido.Add("GGC", "Glicina");
Aminoacido.Add("GGA", "Glicina");
Aminoacido.Add("GGG", "Glicina");

Console.WriteLine("Digite a trinca de Aminoácidos que deseja pesquisar:


\n(Utilize caixa alta na pesquisa) ");
trinca = Console.ReadLine();

foreach (DictionaryEntry indice in Aminoacido)


{
if (trinca.Equals((string)indice.Key))
{
Console.WriteLine("O Aminoácido pesquisado é: " + indice.Value);
}
}
Console.ReadKey();
}
* 19 – Crie um dicionário com URL’s e IP’s dos websites abaixo e mais 5 à sua escolha. O seu
dicionário deve ser implementado usando a classe Hashtable e terá a URL como chave e o IP
correspondente como valor (por exemplo, se digitarmos como chave a URL www.google.com, seu
programa deve retornar o IP 74.125.234.81). O seu programa deve permitir que o usuário digite uma URL
e deve imprimir o IP correspondente. Para descobrir o IP de um website, basta digitar ping + URL do
website (exemplo: ping www.google.com).

class ConsultaURL
{
public static void verificaURL(Hashtable HT, string key)
{
if (HT.Contains(key))
{
Console.WriteLine("\nO IP correspondente à URL digitada é: " + HT[key]);
}

else
Console.WriteLine("\nA URL não está cadastrada!");
}
}

class Program
{
static void Main(string[] args)
{
string url;
Hashtable URL = new Hashtable();
URL.Add("www.google.com", "216.58.202.4");
URL.Add("www.yahoo.com", "200.152.175.146");
URL.Add("www.amazon.com", "54.239.25.200");
URL.Add("www.uol.com.br", "200.147.67.142");
URL.Add("www.pucminas.br", "200.229.43.1");
URL.Add("www.microsoft.com", "184.85.143.148");
URL.Add("research.microsoft.com", "131.107.65.14");
URL.Add("www.hotmail.com", "157.55.104.76");
URL.Add("www.gmail.com", "216.58.202.5");
URL.Add("www.twitter.com", "104.244.42.129");
URL.Add("www.facebook.com", "69.171.230.68");
URL.Add("www.cplusplus.com", "167.114.170.15");
URL.Add("www.youtube.com", "172.217.28.78");
URL.Add("www.brasil.gov.br", "161.148.175.40");
URL.Add("www.whitehouse.gov", "173.222.156.110");
URL.Add("www.nyt.com", "170.149.159.130");
URL.Add("www.capes.gov.br", "200.130.18.222");
URL.Add("www.wikipedia.com", "208.80.154.224");
URL.Add("www.answers.com", "67.196.156.65");
URL.Add("www.apple.com", "23.42.248.176");
URL.Add("www.bbc.com", "23.235.46.81");
URL.Add("vidadesuporte.com.br", "104.28.14.104");
URL.Add("santorock.com", "54.232.127.4");
URL.Add("www.fatosdesconhecidos.com.br", "190.93.249.13");
URL.Add("www.dropbox.com", "162.125.4.1");

Console.WriteLine("Digite a URL que deseja pesquisar: ");


url = Console.ReadLine();

ConsultaURL.verificaURL(URL, url);

Console.ReadKey();
}
}

* 21 – Faça um programa que use um SortedList para adicionar a matrícula (key) e nome (value) de
vários alunos. Para encerrar o cadastramento de alunos, o usuário deve digitar uma matrícula negativa.
Após o cadastro, seu programa deve permitir ao usuário pesquisar alunos através de sua matrícula. O
usuário deve digitar um número negativo para interromper a pesquisa.

public static void Main()


{
SortedList SL = new SortedList();

int matricula = 0;
string aluno = "0";

Console.WriteLine("Selecione uma opção a seguir: ");


Console.WriteLine("1 - Cadastro de Alunos");
Console.WriteLine("2 - Pesquisa de Alunos");
int opc = int.Parse(Console.ReadLine());

while (opc >= 0)


{
switch (opc)
{
case 1:
do
{
Console.Clear();
Console.WriteLine("Digite a matricula: ");
matricula = int.Parse(Console.ReadLine());
if (matricula > 0)
{
Console.WriteLine("Digite o nome do aluno: ");
aluno = Console.ReadLine();
SL.Add(matricula, aluno);
}
} while (matricula > 0);

break;

case 2:

Console.Clear();
Console.WriteLine("\tPESQUISA DE ALUNOS\n");
do
{
Console.WriteLine("Digite a matrícula: ");
matricula = int.Parse(Console.ReadLine());
foreach (int item in SL.Keys)
{
if (matricula.Equals(item))
{
Console.WriteLine("\nO aluno pesquisado é: \nMatrícula: "
+ matricula + "\nNome: " + aluno);
}
Console.WriteLine();
}
} while (matricula > 0);

break;
}

Console.Clear();
Console.WriteLine("Selecione uma opção a seguir: ");
Console.WriteLine("1 - Cadastro de Alunos");
Console.WriteLine("2 - Pesquisa de Alunos");
opc = int.Parse(Console.ReadLine());

}
Console.ReadKey();
}

* 22 – Faça um programa que cadastre em um Hashtable alguns modelos de carros de montadoras


nacionais, conforme a tabela abaixo (você deve fazer esse cadastro internamente, não o usuário – crie
uma função para isso). Seu Hashtable tem como chave o nome da montadora, e como valor um Arraylist
contendo os modelos de carros da tabela abaixo.

public static void Main()


{
string nome;
Hashtable Montadora = new Hashtable();
Montadora.Add("Fiat", new ArrayList());
((ArrayList)Montadora["Fiat"]).Add("Mille");
((ArrayList)Montadora["Fiat"]).Add("Novo Uno");
((ArrayList)Montadora["Fiat"]).Add("Palio");
((ArrayList)Montadora["Fiat"]).Add("Siena");
((ArrayList)Montadora["Fiat"]).Add("Freemont");
((ArrayList)Montadora["Fiat"]).Add("Bravo");
((ArrayList)Montadora["Fiat"]).Add("Punto");
((ArrayList)Montadora["Fiat"]).Add("Linea");
((ArrayList)Montadora["Fiat"]).Add("Palio Weekend");

Montadora.Add("Volkswagen", new ArrayList());


((ArrayList)Montadora["Volkswagen"]).Add("Gol");
((ArrayList)Montadora["Volkswagen"]).Add("Voyage");
((ArrayList)Montadora["Volkswagen"]).Add("Polo");
((ArrayList)Montadora["Volkswagen"]).Add("Passat");
((ArrayList)Montadora["Volkswagen"]).Add("Amarok");
((ArrayList)Montadora["Volkswagen"]).Add("Fox");
((ArrayList)Montadora["Volkswagen"]).Add("Golf");
((ArrayList)Montadora["Volkswagen"]).Add("Jetta");
((ArrayList)Montadora["Volkswagen"]).Add("Tiguan");
Montadora.Add("Ford", new ArrayList());
((ArrayList)Montadora["Ford"]).Add("Focus");
((ArrayList)Montadora["Ford"]).Add("Fiesta");
((ArrayList)Montadora["Ford"]).Add("Ka");
((ArrayList)Montadora["Ford"]).Add("New Fiesta");
((ArrayList)Montadora["Ford"]).Add("Fusion");
((ArrayList)Montadora["Ford"]).Add("Edge");

Montadora.Add("GM", new ArrayList());


((ArrayList)Montadora["GM"]).Add("Celta");
((ArrayList)Montadora["GM"]).Add("Classic");
((ArrayList)Montadora["GM"]).Add("Prisma");
((ArrayList)Montadora["GM"]).Add("Agile");
((ArrayList)Montadora["GM"]).Add("Omega");
((ArrayList)Montadora["GM"]).Add("Cruze");
((ArrayList)Montadora["GM"]).Add("Camaro");
((ArrayList)Montadora["GM"]).Add("Malibu");

try {
Console.WriteLine("Digite o nome da montadora: ");
nome = Console.ReadLine();
Console.WriteLine();
int i = 0;

foreach (string carros in (ArrayList)Montadora[nome])


{

if (Montadora.ContainsKey(nome))
{
Console.WriteLine((i +1) + "º carro cadastrado: " + carros);
i = i + 1;
}
}

Console.WriteLine("\nTotal de carros cadastrados: " + i);


}

catch
{
Console.WriteLine("Montadora não cadastrada");
}
Console.ReadKey();

23 – Refaça o exercício 19 usando a coleção genérica Dictionary.

static void Main(string[] args)


{
string url;
Dictionary<string, string> URL = new Dictionary<string, string>();
URL.Add("www.google.com", "216.58.202.4");
URL.Add("www.yahoo.com", "200.152.175.146");
URL.Add("www.amazon.com", "54.239.25.200");
URL.Add("www.uol.com.br", "200.147.67.142");
URL.Add("www.pucminas.br", "200.229.43.1");
URL.Add("www.microsoft.com", "184.85.143.148");
URL.Add("research.microsoft.com", "131.107.65.14");
URL.Add("www.hotmail.com", "157.55.104.76");
URL.Add("www.gmail.com", "216.58.202.5");
URL.Add("www.twitter.com", "104.244.42.129");
URL.Add("www.facebook.com", "69.171.230.68");
URL.Add("www.cplusplus.com", "167.114.170.15");
URL.Add("www.youtube.com", "172.217.28.78");
URL.Add("www.brasil.gov.br", "161.148.175.40");
URL.Add("www.whitehouse.gov", "173.222.156.110");
URL.Add("www.nyt.com", "170.149.159.130");
URL.Add("www.capes.gov.br", "200.130.18.222");
URL.Add("www.wikipedia.com", "208.80.154.224");
URL.Add("www.answers.com", "67.196.156.65");
URL.Add("www.apple.com", "23.42.248.176");
URL.Add("www.bbc.com", "23.235.46.81");
URL.Add("vidadesuporte.com.br", "104.28.14.104");
URL.Add("santorock.com", "54.232.127.4");
URL.Add("www.fatosdesconhecidos.com.br", "190.93.249.13");
URL.Add("www.dropbox.com", "162.125.4.1");

Console.WriteLine("Digite a URL que deseja pesquisar: ");


url = Console.ReadLine();

if (URL.ContainsKey(url))
{
Console.WriteLine("\nO IP correspondente à URL digitada é: " + URL[url]);
}

else
Console.WriteLine("\nA URL não está cadastrada!");

Console.ReadKey();
}

26 – Crie a função public Queue CopiaQueue(Queue<int> origem) que copia todos os dados do
Queue<int> origem e retorna o novo Queue (não genérico) criado.

public Queue<int> CopiaQueue(Queue<int> origem)


{
Queue<int> copia = new Queue<int>(origem.Count);
foreach (int item in origem)
{
copia.Enqueue(item);
}
return copia;
}
29 – Crie o procedimento public void InverteQueue<T>(Queue<T> Q) que inverte a ordem dos
elementos do Queue<T> Q, no próprio Queue. OBS1: utilize outras estruturas que julgar necessárias.
OBS2: nesse exercício você não deve utilizar o método reverse.

public void InverteQueue(Queue<int> Q)


{
Stack<int> inverte = new Stack<int>();

foreach (var item in Q)


{
inverte.Push(item);
}

Q.Clear();

foreach (var newQ in inverte)


{
Q.Enqueue(newQ);
}

30 – Crie o procedimento public void InverteStack<T>(Stack<T> S) que inverte a ordem dos elementos
do Stack<T> S, no próprio Stack. OBS1: nesse exercício você não deve utilizar o método reverse.

public void InverteStack(Stack<string> S)


{
Queue<string> inverte = new Queue<string>();

foreach (var item in S)


{
inverte.Enqueue(item);
}

S.Clear();

foreach (var newS in inverte)


{
S.Push(newS);
}

* 33 – Faça um programa que monte a estrutura abaixo usando Dictionary<> ou SortedList<>:

Chave (continente) Valor

América

Chave (País) Valor (População)


Brasil 202,656,784
México 120,286,656
... ...
Estados Unidos 318,892,096
Ásia Chave (País) Valor (População)
China 1,355,692,544
... ...
Japão 127,103,392
...

Você deve inserir pelo menos 3 continentes com no mínimo 6 países em cada um.

Gere um relatório com base no layout abaixo:

Continente: nome do continente


Nome do país 1 – População: população do país 1
Nome do país 2 – População: população do país 2
...
Nome do país n – População: população do país n
População total: 999999

class Program
{
static void Main(string[] args)
{
Dictionary<string, Dictionary<string, long>> Continente = new
Dictionary<string, Dictionary<string, long>>();

Continente.Add("Asia", new Dictionary<string, long>());


Continente["Asia"].Add("China", 1355692544);
Continente["Asia"].Add("Índia", 1236344576);
Continente["Asia"].Add("Indonésia", 253609648);
Continente["Asia"].Add("Paquistão", 196174384);
Continente["Asia"].Add("Bangladeche", 166280704);
Continente["Asia"].Add("Japão", 127103392);
Continente["Asia"].Add("Filipinas", 107668232);

Continente.Add("America do Sul", new Dictionary<string, long>());


Continente["America do Sul"].Add("Brasil", 202656784);
Continente["America do Sul"].Add("Colômbia", 46245296);
Continente["America do Sul"].Add("Argentina", 43024376);
Continente["America do Sul"].Add("Peru", 30147936);
Continente["America do Sul"].Add("Venezuela", 28868486);
Continente["America do Sul"].Add("Chile", 17363894);
Continente["America do Sul"].Add("Equador", 15654411);

Continente.Add("Oriente Medio", new Dictionary<string, long>());


Continente["Oriente Medio"].Add("Paquistão", 196174384);
Continente["Oriente Medio"].Add("Turquia", 81619392);
Continente["Oriente Medio"].Add("Irã", 80840712);
Continente["Oriente Medio"].Add("Iraque", 32585692);
Continente["Oriente Medio"].Add("Afeganistão", 31822848);
Continente["Oriente Medio"].Add("Usbequistão", 28929716);

long soma = 0;

foreach (KeyValuePair<string, Dictionary<string, long>> continente in


Continente)
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\nContinente: " + continente.Key);
foreach (KeyValuePair<string, long> pais in continente.Value)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\nPaís: " + pais.Key);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("População: " + pais.Value);
soma = soma + pais.Value;
}
}
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n\n\nPopulação total: " + soma);
Console.ReadKey();
}
}

Вам также может понравиться