Buscar

ATIVIDADE PRÁTICA linguagem de programacao

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

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

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ê viu 3, do total de 5 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

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

Prévia do material em texto

1. EXERCÍCIO 1 
ENUNCIADO: 
Escreva um algoritmo em linguagem C com as seguintes instruções: 
1. Declare três variáveis (inteiro, real e char); 
2. Declare três ponteiros; 
3. Associe as variáveis aos ponteiros; 
4. Modifique os valores de cada variável indiretamente usando os ponteiros associados. Para armazenar os valores nas variáveis, armazene na variável char a primeira letra do seu nome, na variável inteira os dois últimos dígitos do seu RU e na variável real os 4 últimos dígitos do seu RU, sendo os 2 últimos os valores com virgula; 
5. Imprima na tela os valores das variáveis antes e após a modificação.
Solução:
#include<stdio.h>
#include<stdlib.h>
int main() {
	
	//Declare três variáveis (inteiro, real e char); Declare três ponteiros; 
	int valor, *ponteiroValor;
	char texto, *ponteiroTexto;
	float real, *ponteiroReal;
	valor = 2;
	texto = 'b';
	real = 10.2;
	
	//Associe as variáveis aos ponteiros;
	ponteiroValor = &valor;
	ponteiroTexto = &texto;
	ponteiroReal = &real;
	//Modifique os valores de cada variável indiretamente usando os ponteiros associados. 
	*ponteiroValor = 54;
	*ponteiroTexto = 'L';
	*ponteiroReal = 42.54;
	//Imprima na tela os valores das variáveis antes e após a modificação
	printf("%d \n", valor);
	printf("%c \n", texto);
	printf("%2.2f \n", real);
	system("pause");
	return 0;
}
1. EXERCÍCIO 2
ENUNCIADO: 
Escreva um algoritmo em LINGUAGEM C que armazene na memória o seu RU e o valor 1234567, ambos digitados pelo usuário na tela. 
Em seguida, imprima na tela ambos RU usando ponteiros. O algoritmo também vai ter que comparar os dois RU usando ponteiros e imprimir na tela qual é o maior.
Solução:
#include<stdio.h>
#include<stdlib.h>
int main() {
	int ru1, ru2; 
	int *ponteiroRU1, *ponteiroRU2;
	printf("digite seu RU:\n");
	scanf_s("%d", &ru1);//armazene na memória
	ponteiroRU1 = &ru1; //recebe o endereço de ru
	
	printf("digite o segundo RU:\n");
	scanf_s("%d", &ru2);//armazene na memória
	ponteiroRU2 = &ru2;
	/*imprima na tela ambos RU usando ponteiros
	 O algoritmo também vai ter que comparar os dois RU usando ponteiros e imprimir na tela qual é o maior
	*/
	if (*ponteiroRU1 > * ponteiroRU2) {
		printf("RU 1: %d e maior que RU 2: %d\n", *ponteiroRU1, *ponteiroRU2);
	}
	else {
		printf("RU 2: %d e maior que RU 1: %d\n", *ponteiroRU2, *ponteiroRU1);
	}
	system("pause");
	return 0;
}
1. EXERCÍCIO 3
ENUNCIADO: 
Faça um algoritmo em linguagem C com as seguintes funcionalidades: 
· Receba um registro, com dois campos, como dados de entrada. 
· O primeiro campo é um vetor que vai armazenar o nome do aluno. 
· O segundo campo é uma variável do tipo inteiro que vai armazenar o RU do aluno. 
· Imprime na tela os dados armazenados na estrutura.
Solução:
#include<stdio.h>
#include<stdlib.h>
int main() {
	//Declare variáveis 
	int ru;
	char nome[100];
	
		
	printf("Digite seu nome:\n");
	gets_s(nome); //armazena o primeiro campo é um vetor que vai armazenar o nome do aluno
	
	printf("Digite seu RU:\n");
	scanf_s("%d", &ru);//armazena o segundo campo é uma variável do tipo inteiro que vai armazenar o RU do aluno
	
	//Imprime na tela os dados armazenados na estrutura
	printf("\nNome: %s \n", nome);
	printf("RU: %d \n", ru);
	
	system("pause");
	return 0;
}
1. EXERCÍCIO 4
ENUNCIADO: 
Replique o exercício 3. Porém, agora, declare um ponteiro para a estrutura de dados heterogênea. No momento da leitura dos dados e da impressão na tela, use o ponteiro para buscar o conteúdo dos campos. Imprima na tela também o seu RU na tela.
Solução:
#include<stdio.h>
#include<stdlib.h>
int main() {
	struct aluno // struct aluno
	{
		//componentes
		int ru;
		char nome[100];
	}; struct aluno agora, * depois; // variável “agora”, juntamente com o ponteiro “*depois”; 
	//é atribuído o endereço de endereço de “agora” para o ponteiro “depois”;
	depois = &agora; 
		
	//os componentes da struct são instanciados com o uso de ponteiros; 
	printf("Digite seu nome:\n");
	gets_s(depois->nome); 
	printf("Digite seu RU:\n");
	scanf_s("%d", &depois->ru);
	//Imprime na tela os dados armazenados na estrutura
	printf("\nNome: %s \n", depois->nome);
	printf("RU: %d \n", depois->ru);
	
	system("pause");
	return 0;
}
1. EXERCÍCIO 5
ENUNCIADO: 
Faça um algoritmo em linguagem C que contenha dois números inteiros digitados na tela pelo usuário: 
a. O primeiro número marca um início; 
b. O segundo número marca um fim; 
O algoritmo vai contar quantos números existem entre o início (primeira entrada) e o fim (segunda entrada). A impressão na tela do usuário deve ser realizada de duas formas: 
a) Iterativa; 
b) Recursiva; 
Ao colocar no seu relatório uma imagem do seu código funcionando, coloque ele rodando utilizando como valor de inicio os 2 últimos valores do seu RU e valor final o número 99.
Solução:
#include<stdio.h>
#include<stdlib.h>
int recursao(int ini, int fin, int contador);
int main() {
	int inicio, fim, i, contador = 1;
	
	printf("Digite valor de inicio:\n"); //O primeiro número marca um início; 
	scanf_s("%d", &inicio);
	printf("Digite valor de fim:\n"); //O segundo número marca um fim; 
	scanf_s("%d", &fim);
	
	printf("\nFuncao itaretiva:\n"); //Iterativa
	for (i = inicio; i < fim; i++) {
		//contador de posições
		contador++;
	}
	printf("total: %d posicoes\n", contador);
	printf("\nFuncao recursiva:\n");
	recursao(inicio, fim, 1);
	printf("\n");
	system("pause");
	return 0;
}
int recursao(int inicio, int fim, int contador) {
	if (inicio < fim) {
		//contador de posições
		contador++;
		if (inicio == fim-1) {
			printf("total: %d posicoes\n", contador);
		}
		
		return recursao(inicio + 1, fim, contador);
	}
}
1

Outros materiais