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

Questão1/5EstruturadeDados

UsandoalinguagemdeprogramaçãoC/C++escrevaumprogramaquecalculeofatorialde

umnúmerointeirodigitadopelousuário.Paraquevocêconsigacompletarestatarefa,o

programateráqueterpelomenosumafunção.

---------------------------------------------------------------------------------------

#include"stdio.h"

#include"stdlib.h"

intFatorial(intnum){ intfat;

if(num==1)

fat=1;

else

fat=Fatorial(num-1)*num;

returnfat;

}

intmain()

{

intnum;

printf("Digiteumnumerointeiroqualquer:");

scanf_s("%d",&num);

printf("\nOfatorialde%dehiguala:%d\n\n",num,Fatorial(num));

system("pause");

return0;

}

----------------------------------------------------------------------------------------

Questão2/5EstruturadeDados

UtilizandoalinguagemdeprogramaçãoC/C++vocêdevecriarumprogramacapazde

armazenarumnúmeroindefinidodeinteirosnamemória.Esteprogramadeverásolicitarao

usuáriootamanhodovetorquearmazenaráestenúmero,criarasestruturasnecessárias,

solicitaraousuárioquedigitecadaumdosnúmerosqueserãoarmazenadoseimprimiro

conjuntodenúmerosarmazenadoseasomadestesnúmeros.

----------------------------------------------------------------------------------------

#include"stdio.h"

#include"stdlib.h"

intmain()

{

int*arr;

intlimite,soma=0;

printf("Digiteaquantidadedenumerosinteirosquegostariadearmazenar:");

scanf_s("%d",&limite);

//Alocarmemoria

arr=(int*)malloc(limite*sizeof(int));

//Verificarsenaoexcedeamemoriatotal if(arr==NULL){ printf("Memoriainsuficienteparaarmazenarestaquantidadedenumeros inteiros!\n\n"); system("pause");

return0;

}

printf("Digite%dnumerosinteiros:\n",limite);

for(inti=0;i<limite;i++){

printf("Digiteo%dnumero:",i+1);

scanf_s("%d",(arr+i));

soma+=*(arr+i);

}

printf("\nNumerosdigitados:\n");

for(inti=0;i<limite;i++){

printf("%d ",*(arr+i));

}

printf("\n\nSomadosnumerosdigitados:%d\n\n",soma);

system("pause");

return0;

}

----------------------------------------------------------------------------------------

Questão3/5EstruturadeDados

UtilizandoalinguagemdeprogramaçãoC/C++crieumprogramaqueutilizeaestruturade dados

conhecidacomofilaparaarmazenaraté50inteirosqueusecomoelementode

armazenamentoum

vetor(array).Observequeseuprogramadeverápossuirpelomenostrêsfunçõesdotipo

void

chamadasdeinserir,apagaremostrarequeousuáriodeverteracessoaummenude

opçõesque

permitaainclusão,exclusãoeapresentaçãodosvalorescontidosarmazenadosnestafila.

Cabeaoprogramadoraresponsabilidadedeavisaraousuárioerroscomunscomofilacheia

evazia.

----------------------------------------------------------------------------------------

#include "stdio.h" #include "stdlib.h"

#define MAX 50

int fila[MAX]; int fim = -1;

void Inserir() { int num; if (fim == MAX - 1) printf("\nA fila esta cheia!!\n\n"); else { printf("\nDigite um numero a ser inserido na fila: "); scanf_s("%d", &num); fim++; fila[fim] = num; printf("\nNumero inserido com sucesso!!\n\n");

}

}

void Apagar() { int num; if (fim == -1) printf("\nA fila esta vazia!!\n\n"); else { printf("\nO numero apagado foi: %d\n\n", fila[0]);

for (int i = 0; i <= fim; i++) { fila[i] = fila[i + 1];

}

}

fim--;

}

void Mostrar() {

if (fim == -1) printf("\nA fila esta vazia!!"); else { printf("\nNumeros na fila: \n"); for (int i = 0; i <= fim; i++) { printf("%d ", fila[i]);

}

}

printf("\n\n");

}

int main()

{

int opt;

do {

system("cls"); printf("\tMenu\n"); printf("1 - Inserir um numero inteiro na fila\n"); printf("2 - Apagar um numero inteiro da fila\n"); printf("3 - Mostrar todos os numeros da fila\n"); printf("4 - Sair\n\n"); printf("Digite sua escolha: "); scanf_s("%d", &opt); switch (opt)

{

case 1:

Inserir(); system("pause"); break; case 2:

Apagar(); system("pause"); break; case 3:

Mostrar(); system("pause"); break; case 4:

printf("\nPrograma encerrado com sucesso!!\n\n"); system("pause"); break; default:

printf("\nOpcao invalida!\n\n"); system("pause"); break;

}

} while (opt != 4);

return 0;

}

----------------------------------------------------------------------------------------

Questão4/5EstruturadeDados

CriarumprogramautilizandoalinguagemdeprogramaçãoC/C++quesejacapazde

armazenar,emumamatriz3x20,opeso(linha0),aaltura(linha1)eaidade(linha2)de20

pessoas.Apósarmazenado,oprogramaofereceraousuárioapossibilidadedeordenara

matrizpela

idade,pelaalturaepelopeso.Umavezqueaformadeordenaçãosejaselecionada,o

programadeveráexibiramatrizordenada.

----------------------------------------------------------------------------------------

#include "stdio.h" #include "stdlib.h"

//definir quantidade de pessoas #define MAX 20

float matriz[3][MAX];

void inserirDados() { for (int i = 0; i < MAX; i++) {

printf("Digite o peso, a idade e a altura de %d pessoas:\n", MAX);

printf("Peso(kg)

scanf_s("%f", &matriz[0][i]);

printf("Altura(metros): "); scanf_s("%f", &matriz[1][i]);

printf("Idade(anos)

scanf_s("%f", &matriz[2][i]);

system("cls");

: ");

: ");

}

}

void exibirMatriz() {

for (int i = 0; i < 3; i++) { if (i == 0) printf("Peso(kg) if (i == 1)

: ");

printf("Altura(metros): "); if (i == 2)

: ");

for (int j = 0; j < MAX; j++) {

printf("Idade(anos)

printf("%.2f ", matriz[i][j]);

}

printf("\n");

}

printf("\n");

}

void ordenarPeso() { char ch; float aux; int k = MAX - 1;

//BubbleSort, ordenacao por selecao do {

ch = 'n'; for (int i = 0; i < k; i++) { if (matriz[0][i] > matriz[0][i + 1]) { for (int j = 0; j < 3; j++) {

aux = matriz[j][i]; matriz[j][i] = matriz[j][i + 1]; matriz[j][i + 1] = aux; ch = 's';

}

k =

}

}

k - 1;

} while (ch == 's');

}

void ordenarAltura() { char ch; float aux; int k = MAX - 1;

//BubbleSort, ordenacao por selecao do {

ch = 'n'; for (int i = 0; i < k; i++) { if (matriz[1][i] > matriz[1][i + 1]) { for (int j = 0; j < 3; j++) { aux = matriz[j][i]; matriz[j][i] = matriz[j][i + 1]; matriz[j][i + 1] = aux; ch = 's';

}

k =

}

}

k - 1;

} while (ch == 's');

}

void ordenarIdade() {

char ch; float aux; int k = MAX - 1;

//BubbleSort, ordenacao por selecao do {

ch = 'n'; for (int i = 0; i < k; i++) { if (matriz[2][i] > matriz[2][i + 1]) { for (int j = 0; j < 3; j++) { aux = matriz[j][i]; matriz[j][i] = matriz[j][i + 1]; matriz[j][i + 1] = aux; ch = 's';

}

k =

}

}

k - 1;

} while (ch == 's');

}

int main()

{

int opt;

inserirDados();

do {

printf("Digite a forma como gostaria de ordenar: \n");

printf("1 - Por peso\n"); printf("2 - Por altura\n"); printf("3 - Por idade\n"); printf("4 - Sair\n\n"); printf("Digite sua escolha: "); scanf_s("%d", &opt);

switch (opt)

{

case 1:

ordenarPeso(); printf("Matriz ordenada por peso:\n"); exibirMatriz(); system("pause"); break; case 2:

ordenarAltura(); printf("Matriz ordenada por altura:\n"); exibirMatriz(); system("pause"); break; case 3:

ordenarIdade(); printf("Matriz ordenada por idade:\n"); exibirMatriz(); system("pause"); break;

case 4:

printf("\nPrograma encerrado com sucesso!!\n\n"); system("pause"); break; default:

printf("\nEscolha Invalida!!\n\n"); system("pause"); break;

}

system("cls"); } while (opt != 4);

return 0;

}

----------------------------------------------------------------------------------------

Questão5/5EstruturadeDados

UtilizandoalinguagemdeprogramaçãoC/C++crieumprogramaquedemonstreousode

umaestruturadedadosdotipofiladeinteirosqueusecomoelementodearmazenamento

umaestruturadotiplolistaencadeada.Certifique-sequesuaestruturadefilatenhafunções

parainserir,apagar,criaremostraroconteúdodalistaalémdeumafunçãoparadevolvero

tamanhodafilaeoutraparaesvaziarafila.Observetambémque,pararesolvereste

problemavocêprecisará,obrigatoriamenteutilizaralocaçãodinâmicadememóriaeque

paratestarafilaousuáriodeveteracessoaummenucontendotodasasfunções

especificadas.

-----------------------------------------------------------------------------------------

#include "stdio.h" #include "stdlib.h"

struct Fila

{

int num;

Fila *prox;

};

Fila *inicio, *fim, *aux; int contar = 0;

void Inserir() { Fila *novo = (struct Fila *)malloc(sizeof(struct Fila));

printf("\nDigite um numero inteiro para ser inserido na fila: "); scanf_s("%d", &novo->num);

novo->prox = NULL;

if (inicio == NULL) { elemento

inicio = fim = novo;

}

else { fim->prox = novo;

fim = novo;

}

contar++;

}

//A Fila esta vazia e iremos inserir o primeiro

void Apagar() { if (inicio == NULL) { printf("\nA fila esta vazia!\n\n");

}

else { printf("\nO numero %d foi apagado do inicio da fila\n\n", inicio->num); aux = inicio; inicio = inicio->prox;

free(aux); // Libera o espaco na memoria contar--;

}

}

void Esvaziar() {

char ch; if (inicio == NULL) { printf("\nA fila esta vazia!\n\n");

}

else { printf("\nTem certeza que deseja esvaziar toda a fila?(s/n): "); ch = getchar();

if (ch == 's' || ch == 'S') { while (inicio != NULL) { aux = inicio; inicio = inicio->prox; free(aux); // Libera o espaco na memoria contar--;

}

printf("\nA fila foi esvaziada com sucesso!!\n\n");

}

else { printf("\nA fila nao foi esvaziada!!\n\n");

}

}

}

void Mostrar() { aux = inicio; if (inicio == NULL) { printf("\nA fila esta vazia!");

}

else { while (aux != NULL) { printf("%d ", aux->num); aux = aux->prox;

}

}

printf("\n\n");

}

void Tamanho() { if (inicio == NULL) { printf("\nA fila esta vazia!\n\n");

}

else { printf("\nA fila contem %d elementos!\n\n", contar);

}

}

int main(){

int opt, c;

do {

printf("\tMenu de Escolhas\n"); printf("1 - Inserir um elemento\n"); printf("2 - Apagar um elemento\n"); printf("3 - Mostrar toda fila\n"); printf("4 - Tamanho da fila\n"); printf("5 - Esvaziar fila\n"); printf("6 - Sair\n\n"); printf("Digite sua escolha: "); scanf_s("%d", &opt); while ((c = getchar()) != '\n' && c != EOF){}

switch (opt) {

// Limpar buffer

case 1:

Inserir(); printf("\nElemento inserido com sucesso!!\n\n"); system("pause"); break; case 2:

Apagar(); system("pause"); break; case 3:

Mostrar(); system("pause"); break; case 4:

Tamanho(); system("pause"); break; case 5:

Esvaziar(); system("pause"); break; case 6:

printf("\nO programa foi encerrado com sucesso!!\n\n"); system("pause"); break; default:

printf("\nEscolha Invalida!!\n\n"); system("pause"); break;

}

system("cls"); } while (opt != 6);

return 0;

}

-----------------------------------------------------------------------------------------