Buscar

EStrutura de DAdos

Prévia do material em texto

1 - Implemente um procedimento para ler n componente para um vetor de números inteiros e 
imprima quantos são numero positivos. 
e quantos são números pares crie uma flag de saída do programa 
#include<stdio.h> 
#include<stdlib.h> 
 
const int sair = 0; 
main(){ 
int num, par=0, pos=0; 
printf("Informe um valor inteiro, 0 (zero) para sair : "); 
scanf("%d",&num); 
 while(num!=sair){ 
if(num > 0){ 
pos ++; 
} 
if(num%2 == 0){ 
par ++; 
} 
printf("\n Informe um valor inteiro - 0 (zero) para sair): "); 
scanf("%d",&num); 
} 
printf("\n quantidades de numero positivo = %d", pos); 
printf("\n quantidade de numeros pares = %d \n\n", par); 
system("pause"); 
} 
2 - Implemente um funcao chamada interger power (base, expoente) que retorne a potencia. o 
expoente deve ser um inteiro positivo diferente de zero e base um inteiro positivo essa função 
deve empregar um for ou while para realizar o calculo da potência . 
nao use a funcao pow da biblioteca math.h . 
 
#include<stdio.h> 
#include<stdlib.h> 
int IntegerPower ( int base, int potencia ) { 
int result=1 ; 
for( int i=potencia; i>0; i-- ) { 
result*=base; 
} 
return result ; 
} 
main() { 
int x, y ; 
printf ( "\n informe valor inteiro para a base : ") ; scanf ("%d", &x ) ; 
printf ( "\n Informe um valor inteiro para o expoente : ") ; scanf ("%d",&y ) ; 
system("cls" ) ; 
// colocar esse comando so pro programa nao aceitar valores zero, caso o usuario 
//digite zero, o programa voltarar a pedir outros 
// para a base e o expoente. 
if( x == 0 || y==0 ) { 
printf ( "\n Base e o expoente nao podem ser ZERO, INFORME OUTRO VALOR" ) ;
printf ( "\n\n informe valor inteiro para a base : "); scanf("%d", &x) ; 
printf ( "\n\n Informe um valor inteiro para o expoente : "); scanf("%d",&y ) ; 
} 
Printf ( "\n Resultado de %d elevado a %d = %d",x,y,IntegerPower(x,y) ) ; 
} 
3- Implementar um procedimento que leia os elementos de uma matriz A de ordem 10 e 
implemente um outro procedimento para imprimir 
os elementos da diagonal secundaria da matriz A, Use passagem de parametro por referência. 
 
#include<stdio.h> 
#define tam 4 
 
int mat ( int A[][tam] ) { 
printf ( "\n Imprimindo a Matriz Principal \n\n " ) ; 
for ( int i=0;i<tam;i++ ) { 
for ( int j=0; j<tam;j++ ) { 
 
printf ( "\t %2d ", A[i] [j] ) ; 
} 
printf ("\n") ; 
} 
printf ( "\n\n Impimindo a diagonal secundaria \n\n " ) ; 
for (int lin = 0;lin <tam;lin++) { 
for ( int col=0;col<tam;col++ ) { 
 
if ( col==( 4-1-lin ) ) // funcao para imprimir a diagonal principal 
printf ( " %d ", A [ lin ] [col ] ) ; 
} } } 
main(){ 
int matriz [] [tam] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; // passagem de 
parametro 
mat(matriz); // chamo a funcao mat que recebera os valores 
} 
4 - Implemente um procedimento que calcule o somatório de um valor inteiro passado por 
referencia e dado pelo procedimento principal man() faça o procedimento principal imprimir o 
valor do somatório deste valor 
 
#include<stdio.h> 
 #include<stdlib.h> 
 
int somatorio (int &n) { /*O símbolo & antes do n, significa que é uma referencia ou seja esta 
recebendo o endereço de memoria do num que esta dentro do main, caso eu queira trocar 
esse valor basta eu colocar dentro da função um valor pra n, exemplo n=4, agora veja que n 
não vale mas 0 e sim 4, foi alterado sem que eu alterasse l num dentro do main*/ 
 
n=5; 
int soma= 0, i=0; 
while(i<n){ 
soma+= (n-i); // funcao que faz o somatorio do valor 8 (1+2+3+4+5+6+7+8) 
 
i++; 
} 
return soma; 
} 
main(){ 
int num=8; 
 
printf("\n\n A somatoria do valor %d = %d",num, somatorio(num)); 
} 
 
 
 
5- Implemente uma função que receba um vetor de inteiros e retorno o maior valor 
armazenado neste vetor. Faça o procedimento ou função que o invocou imprimir o maior valor. 
Use passagem de parâmetro por valor 
 
#include<stdio.h> 
#include<stdlib.h> 
# define tam 4 
 
void Maior_valor(int V[tam]){ 
int i=0,j=0; 
int maior = V[0]; 
printf("\nVetor = "); 
for(;i<tam;i++){ 
// imprimi o elemento do vetor 
printf(" %d ",V[i]); 
} 
// imprimi o maior elemento do vetor 
 
for(;j<tam;j++){ 
if(V[j]>maior){ 
maior = V[j]; 
printf("\n\n O maior valor do vetor = %d",maior); 
} } } 
main(){ 
int vetor[tam]={3,6,4,1}; 
Maior_valor(vetor); 
} 
 
6-Considere a função recursiva abaixo e calcule f(13) mostre o retorno de cada pilha de 
recursão 
 
#include<stdio.h> 
int F(int x){ 
if(x<0) 
return 1; 
else 
return F(x-1)+F(x-2); 
} 
main(){ 
int n= 13; 
printf("%d", F(n)); 
} 
 
7-Implemente um programa que utiliza uma funcao recursiva somaN para calcular a soma de 1 
ate n ; 
#include<stdio.h> 
 int somaN(int n){ 
if(n<0) 
return 0; 
else 
return n + somaN(n-1); 
 } 
 main(){ 
int num =8; 
printf("\n A somatoria = %d", somaN(num)); 
 }

Continue navegando