·

Análise de Sistemas ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Resolva os enunciados abaixo como atividade para compor a nota N1 Esta lista tem como valor máximo 3 pontos Os exercíciosfunçõespara nota devem ser entregues em documento no formato PDF As funções devem ter o código fonte comentado Os exercícios que não estiverem dentro das especificações acima serão desconsiderados As funções devem ser escritas de acordo com os protótipos anunciados em cada questão Matéria Estrutura de dados Linguagem C EXERCICIOS 1Escreva um procedimento que receba um ponteiro para uma string p de tamanho desconhecido Não presuma de forma alguma o tamanho da string na função Mostreimprimao número de ocorrências de cada caractere contido na string Exemplo Arara deve mostrar A1 a2 e r2 sapato deve mostrar s1 a2 t1 e o1 Protótipo void contaLetraschar p OBS Nesse exercício não use nenhuma função da biblioteca string Valor do exercício 1 ponto PILHAS E FILAS Os arquivos da interface pilhah e filah contem respectivamente as seguintes funções pilhah Pilha pilhacriavoid void pilhapushPilha p float v float pilhapopPilha p int pilhavaziaPilha p void pilhaliberaPilha p filah Fila filacriavoid void filainsereFila f float v float filaretiraFila f int filavaziaFila f void filaliberaFila f O typedef usado para a definição dessas estruturas é desconhecido assim não se sabe se as pilhas ou filas foram implementadas por meio de vetor ou lista encadeada Portanto não use qualquer aspecto ligado à implementação física mas tão somente as funções acima 2Usando apenas o arquivo de interface pilhah criado para uma pilha de números reais escreva uma função que receba ponteiros para duas pilhas A função deve criar uma nova pilha com o conteúdo intercalado das pilhas p1 e p2 As pilhas originais não devem ficar vazias A função retorna o endereço dessa nova pilha para o programa principal Cuidado com a ordem dos elementos Atenção as pilhas podem ter tamanhos diferentes Protótipo Pilha intercalapilha Pilha p1 Pilha p2 Exemplo pilha p1 1234 pilha p2 102030 Após a função pilha p1 1234 pilha p2 102030 pilha intercalada 1102203304 Valor do exercício 1 ponto 3Usando apenas o arquivo de interface filah criado para uma fila de números reais escreva uma função que receba um ponteiro para uma fila f e retorne uma nova fila onde cada elemento é a metade do elemento da fila original A fila original não deve ficar vazia Valor do exercício 1 ponto Protótipo Fila dividefilaFila f Exemplo fila f base 10 20 30 40 topo Após a função Fila f base 10 20 30 40 topo Fila nova base 5 10 15 20 topo 4 Dado o typedef struct lista2 int código float preco struct lista2 ant struct lista2 prox Lista 2 a Escreva um procedimento que receba um elemento qualquer da lista não vazia item e mostre o código e preço do primeiro e do último elemento da lista void firstLast Lista2 item b Escreva um procedimento que receba um ponteiro para o início de uma lista e um valor referente ao preço Mostre o código e preço de todos os elementos que tenham preço maior que o valor informado void precoMaior Lista2 lst float valor TODOS OS CÓDIGOS E IMPLEMENTAÇÕES ESTÃO NO ARQUIVO codigoszip para caso seja necessário rodar algum teste Questão 1 Códigofonte void contaLetraschar p função que conta as letras int i j cont variáveis Percore a string fori 0 pi 0 i percorre a string enquanto não chegar no final cont 0 zera o contador Verifica se o caractere já foi contado forj 0 j i j percorre a string até o caractere atual ifpi pj verifica se o caractere já foi contado cont incrementa o contador Se não foi contado conta ifcont 0 verifica se o caractere já foi contado cont 1 zera o contador forj i 1 pj 0 j percorre a string a partir do caractere atual ifpi pj verifica se o caractere já foi contado cont incrementa o contador printfcd pi cont imprime o caractere e a quantidade de vezes que ele aparece Questão 1 Resposta do teste Questão 2 Códigofonte Pilha intercalapilha Pilha p1 Pilha p2 Pilha p3 pilhacria Crair 2 pilhas auxiliares Pilha p1aux pilhacria Pilha p2aux pilhacria float aux1 aux2 Variaveis auxiliares Enquanto as pilhas não estiverem vazias while pilhavaziap1 pilhavaziap2 Empilhar os elementos das pilhas p1 e p2 nas pilhas auxiliares aux1 pilhapopp1 Desempilhar o elemento da pilha p1 aux2 pilhapopp2 Desempilhar o elemento da pilha p2 pilhapushp1aux aux1 Empilhar na pilha auxiliar p1 pilhapushp2aux aux2 Empilhar na pilha auxiliar p2 pilhapushp3 aux1 Empilhar na pilha p3 pilhapushp3 aux2 Empilhar na pilha p3 Enquanto a pilha p1aux não estiver vazia while pilhavaziap1 Enquanto a pilha p1aux não estiver vazia aux1 pilhapopp1 Desempilhar o elemento da pilha p1 pilhapushp1aux aux1 Empilhar na pilha auxiliar p1 pilhapushp3 aux1 Empilhar na pilha p3 Enquanto a pilha p2aux não estiver vazia while pilhavaziap2 Enquanto a pilha p2aux não estiver vazia aux2 pilhapopp2 Desempilhar o elemento da pilha p2 pilhapushp2aux aux2 pilhapushp3 aux2 Empilhar na pilha p3 Desempilhar os elementos das pilhas auxiliares e empilhar nas pilhas p1 e p2 while pilhavaziap1aux Enquanto a pilha p1aux não estiver vazia aux1 pilhapopp1aux Desempilhar o elemento da pilha p1aux pilhapushp1 aux1 Empilhar na pilha p1 while pilhavaziap2aux Enquanto a pilha p2aux não estiver vazia aux2 pilhapopp2aux Desempilhar o elemento da pilha p2aux pilhapushp2 aux2 Empilhar na pilha p2 Liberar as pilhas auxiliares pilhaliberap1aux Liberar a pilha p1aux pilhaliberap2aux Liberar a pilha p2aux Retornar a pilha intercalada return p3 Questão 2 Resposta do teste Questão 3 Códigofonte Fila dividefilaFila f Fila f2 filacria Criar uma nova fila auxiliar Fila faux filacria Percorrer a fila original while filavaziaf Retirar o elemento da fila original float v filaretiraf Inserir o elemento na fila auxiliar filainserefaux v Inserir o elemento na fila nova filainseref2 v 2 Inserir na fila auxiliar o valor da fila original dividido por 2 while filavaziafaux Retirar o elemento da fila auxiliar float v filaretirafaux Inserir o elemento na fila original filainseref v Retornar a fila auxiliar return f2 Questão 3 Resposta do teste Questão 4 Códigofonte void firstLastLista2 item printf a Mostrar o código e preço do primeiro e do último elemento da lista Lista2 aux item auxiliar para percorrer a lista while auxant NULL percorre a lista até o primeiro elemento aux auxant atualiza o auxiliar printf imprime o primeiro elemento printfPrimeiro elemento Codigo d Preco 2f auxcodigo auxpreco printf while auxprox NULL percorre a lista até o último elemento aux auxprox atualiza o auxiliar Imprimir o último elemento printfUltimo elemento Codigo d Preco 2f auxcodigo auxpreco printf void precoMaiorLista2 lst float valor printf b Precos maiores que 2f valor printf Lista2 aux lst auxiliar para percorrer a lista while aux NULL percorre a lista até o último elemento if auxpreco valor verifica se o preço do elemento é maior que o valor informado imprime o elemento printfCodigo d Preco 2f auxcodigo auxpreco printf atualiza o auxiliar aux auxprox printf Questão 4 Resposta do teste Agility International Business Institute Entelo LA Classes International Business Institute Consultancy Training in International Business Trade Hanoi 23 Trinh Hoai Duc Hanoi 04 3541 7922 Ho Chi Minh City 681A Continuing Education Building Ho Chi Minh University of Technology 08 831 5601 15462 Tan Ky Tan Quy Ward 12 Tan Binh District HCM City 08 3846 2151 wwwagilityeduvn infoagilityeduvn Preparing you for real business in Vietnam and International Market by sharing the experience and knowledge of top International Business Experts Define your career and find the potential job Preparing you to build business with countries all over the world Top career training programs For those who are pursuing an International career For those who want to study conduct research to find opportunities to develop a career in the international market For those who want to run their own business and build professional career in international business Study in Vietnam or abroad Become a successful international leader and an expert in International Business Study at Foreign Universities Colleges in Vietnam Find an intership volunteer job in Vietnam Worldwide Model Global Business in Laboratories Case study International Business Experts Consultants Trainers Coaches assisting you to succeed in the real business Why Agility 10 Years Experience Helping 400 Successful Career Qualify 120 Trainers Experts in International Business Consultancy in 15 Cities 15 Expert Trainer Showcases We are collaborating with worlds greatest companies universities and institutes Agility International Business Institute agilitybusiness AgilityInternationalBusinessInstitute StudyInternationalBusiness InternationalBusinessTraining TODOS OS CÓDIGOS E IMPLEMENTAÇÕES ESTÃO NO ARQUIVO codigoszip para caso seja necessário rodar algum teste Questão 1 Códigofonte void contaLetraschar p função que conta as letras int i j cont variáveis Percore a string fori 0 pi 0 i percorre a string enquanto não chegar no final cont 0 zera o contador Verifica se o caractere já foi contado forj 0 j i j percorre a string até o caractere atual ifpi pj verifica se o caractere já foi contado cont incrementa o contador Se não foi contado conta ifcont 0 verifica se o caractere já foi contado cont 1 zera o contador forj i 1 pj 0 j percorre a string a partir do caractere atual ifpi pj verifica se o caractere já foi contado cont incrementa o contador printfcd pi cont imprime o caractere e a quantidade de vezes que ele aparece Questão 1 Resposta do teste Questão 2 Códigofonte Pilha intercalapilha Pilha p1 Pilha p2 Pilha p3 pilhacria Crair 2 pilhas auxiliares Pilha p1aux pilhacria Pilha p2aux pilhacria float aux1 aux2 Variaveis auxiliares Enquanto as pilhas não estiverem vazias while pilhavaziap1 pilhavaziap2 Empilhar os elementos das pilhas p1 e p2 nas pilhas auxiliares aux1 pilhapopp1 Desempilhar o elemento da pilha p1 aux2 pilhapopp2 Desempilhar o elemento da pilha p2 pilhapushp1aux aux1 Empilhar na pilha auxiliar p1 pilhapushp2aux aux2 Empilhar na pilha auxiliar p2 pilhapushp3 aux1 Empilhar na pilha p3 pilhapushp3 aux2 Empilhar na pilha p3 Enquanto a pilha p1aux não estiver vazia while pilhavaziap1 Enquanto a pilha p1aux não estiver vazia aux1 pilhapopp1 Desempilhar o elemento da pilha p1 pilhapushp1aux aux1 Empilhar na pilha auxiliar p1 pilhapushp3 aux1 Empilhar na pilha p3 Enquanto a pilha p2aux não estiver vazia while pilhavaziap2 Enquanto a pilha p2aux não estiver vazia aux2 pilhapopp2 Desempilhar o elemento da pilha p2 pilhapushp2aux aux2 pilhapushp3 aux2 Empilhar na pilha p3 Desempilhar os elementos das pilhas auxiliares e empilhar nas pilhas p1 e p2 while pilhavaziap1aux Enquanto a pilha p1aux não estiver vazia aux1 pilhapopp1aux Desempilhar o elemento da pilha p1aux pilhapushp1 aux1 Empilhar na pilha p1 while pilhavaziap2aux Enquanto a pilha p2aux não estiver vazia aux2 pilhapopp2aux Desempilhar o elemento da pilha p2aux pilhapushp2 aux2 Empilhar na pilha p2 Liberar as pilhas auxiliares pilhaliberap1aux Liberar a pilha p1aux pilhaliberap2aux Liberar a pilha p2aux Retornar a pilha intercalada return p3 Questão 2 Resposta do teste Questão 3 Códigofonte Fila dividefilaFila f Fila f2 filacria Criar uma nova fila auxiliar Fila faux filacria Percorrer a fila original while filavaziaf Retirar o elemento da fila original float v filaretiraf Inserir o elemento na fila auxiliar filainserefaux v Inserir o elemento na fila nova filainseref2 v 2 Inserir na fila auxiliar o valor da fila original dividido por 2 while filavaziafaux Retirar o elemento da fila auxiliar float v filaretirafaux Inserir o elemento na fila original filainseref v Retornar a fila auxiliar return f2 Questão 3 Resposta do teste Questão 4 Códigofonte void firstLastLista2 item printf a Mostrar o código e preço do primeiro e do último elemento da lista Lista2 aux item auxiliar para percorrer a lista while auxant NULL percorre a lista até o primeiro elemento aux auxant atualiza o auxiliar printf imprime o primeiro elemento printfPrimeiro elemento Codigo d Preco 2f auxcodigo auxpreco printf while auxprox NULL percorre a lista até o último elemento aux auxprox atualiza o auxiliar Imprimir o último elemento printfUltimo elemento Codigo d Preco 2f auxcodigo auxpreco printf void precoMaiorLista2 lst float valor printf b Precos maiores que 2f valor printf Lista2 aux lst auxiliar para percorrer a lista while aux NULL percorre a lista até o último elemento if auxpreco valor verifica se o preço do elemento é maior que o valor informado imprime o elemento printfCodigo d Preco 2f auxcodigo auxpreco printf atualiza o auxiliar aux auxprox printf Questão 4 Resposta do teste