[Explicação]+[Código C] PA e PG Utilizando Funções
Olá galera IMP,
Hoje tava olhando um código que fiz na materia de Liguagem C da faculdade e resolvi postar para vocês entenderem um pouco sobre o Funções, Progressão Geométrica e Progressão Aritmética...
Teoria Basica:
1ª O Que é uma Progressão Geométrica:
Uma progressão geométrica (abreviadamente, P. G.) é uma sequência numérica em que cada termo, a partir do segundo, é igual ao produto do termo anterior por uma constante, chamada de razão da progressão geométrica. Ex:(1,2,4,8,16,32,64,128,256,512,1024,2048), em que Razão = 2, Valor Inicial = 1 e Número de Elementos = 12;
1ª O Que é uma Progressão Aritmética:
Uma progressão aritmética (abreviadamente, P. A.) é uma sequência numérica em que cada termo, a partir do segundo, é igual à soma do termo anterior com uma constante, chamada de razão da progressão aritmética. Ex:(2,4,6,8,10), em que Razão = 2, Valor Inicial = 2 e Número de Elementos = 5;
Agora vamos ver basico das Funções:
Conjunto de comandos agrupados em um bloco que recebe um nome e através deste pode ser ativado.. Sua sintaxe é:
Tipo_da_função nome_da_função (tipo var1, tipo var2,...,tipo varN) <- Lista_de_Parametros
{
// corpo da função
}
O tipo da função pode ser qualquer um dos mostrados até agora e representa o tipo do dado que é retornado pela função. Caso a função não retorne nenhum valor dizemos que ela é do tipo void. E caso não seja especificado nenhum tipo, por padrão a função retorna um inteiro. Mas é importante lembrar que sempre se deve declarar o tipo da função garantindo assim maior portabilidade. Entre parênteses estão os parâmetros da função que é constituído pelos nomes das variáveis que se deseja passar para função separados por virgulas e acompanhados de seus respectivos tipos, como mostra a sintaxe acima. No caso da função não conter parâmetros a lista de parâmetros será vazia, mas mesmo assim será necessário utilizar os parênteses. No corpo da função vem o código em C, este código é privativo da função, ou seja, nenhuma outra função poderá acessa-la com nenhum comando, exceto por meio de uma chamada a função. Isso quer dizer que o código da função não pode afetar outras partes do programa, a menos que sejam utilizadas variáveis Globais. Isto porque as variáveis contidas em uma função são locais, só existem naquela função. Essas variáveis são criadas quando entram na função e destruídas ao sair.
Porque usar funções ?
Para permitir o reaproveitamento de código já construído(por você ou por outros programadores);
Para evitar que um trecho de código que seja repetido várias vezes dentro de um mesmo programa;
Para permitir a alteração de um trecho de código de uma forma mais rápida. Com o uso de uma função é preciso alterar apenas dentro da função que se deseja;
Para que os blocos do programa não fiquem grandes demais e, por conseqüência, mais difíceis de entender;
Para facilitar a leitura do programa-fonte de uma forma mais fácil;
Para separar o programa em partes(blocos) que possam ser logicamente compreendidos de forma isolada.
Creditos da Teoria Basica:
- Minha Professora (Luciana Lee);
- João Neto;
- Wikipédia;
- Puc;
Exercício: (Apresentado Pela Minha Professora && Realizado Pelo Aluno João Neto (EU)
Item 1 - Escreva uma Função que recebe o primeiro elemento de uma progressão aritmética e a razão e imprime na tela os N primeiros elementos, sendo que o valor de N deve ser pedido ao usuario dentro da função.
Item 2 - Escreva uma Função que calcula à soma dos N primeiros elementos de uma progressão aritmética. A função deve receber como parâmetro o primeiro elemento da sequência, razão e o valor de N deve ser perdido ao usuario dentro da função.
Item 3 - Escreva uma Função que recebe o primeiro elemento de uma progressão geométrica e a razão e imprime na tela os N primeiros elementos, sendo que o valor de N deve ser pedido ao usuario dentro da função.
Item 4 - Escreva uma Função que calcula à soma dos N primeiros elementos de uma progressão geométrica. A função deve receber como parâmetro o primeiro elemento da sequência, razão e o valor de N deve ser perdido ao usuario dentro da função.
Desenvolvimentos - Escreva à Função Principal que forneça as seguintes opções:
* Imprimir uma PA;
* Calcular à Soma de uma PA;
* Imprimir uma PG;
* Calcular à Soma de uma PG;
* Sair;
Para cada opção devem ser lidos às informações necessarias.
Código:
/* Exercício Resolvido Por João Neto */
#include <stdio.h>
#include <stdlib.h>
float PG (float num, float raz)
{
int n = 0;
int x;
printf("Digite O Valor de N: \n");
scanf("%d", &n);
if(raz>0){
for(x=0;x<n;x++){
printf("%f \n", num);
system("Pause");
num = num * raz;
}
}
if(raz<0){
for(x=0;x<n;x++){
printf("%f \n", num);
system("Pause");
num = num * raz;
}
}
return num;
}
float SomaPG (float num, float raz)
{
int n = 0;
int soma = 0;
int x;
printf("Digite O Valor de N: \n");
scanf("%d", &n);
if(raz>0){
for(x=0;x<n;x++){
soma = soma+num;
num = num * raz;
}
}
if(raz<0){
for(x=0;x<n;x++){
soma = soma+num;
num = num * raz;
}
}
return soma;
}
float PA (float num, float raz)
{
int n = 0;
int x;
printf("Digite O Valor de N: \n");
scanf("%d", &n);
if(raz>0){
for(x=0;x<n;x++){
printf("%f \n", num);
system("Pause");
num = num+raz;
}
}
if(raz<0){
for(x=0;x<n;x++){
printf("%f \n", num);
system("Pause");
num = num-raz;
}
}
return num;
}
float SomaPA (float num, float raz)
{
int n = 0;
int soma = 0;
int x;
printf("Digite O Valor de N: \n");
scanf("%d", &n);
if(raz>0){
for(x=0;x<n;x++){
soma = soma+num;
num = num+raz;
}
}
if(raz<0){
for(x=0;x<n;x++){
soma = soma+num;
num = num-raz;
}
}
return soma;
}
int main (){
float num, raz;
float soma;
int op = 0;
while(op != 5){
printf("Menu:\n 1)Imprimir uma PA\n 2)Soma de N Elementos da PA\n 3)Imprimir uma PG\n 4)Soma de N Elementos da PG\n 5)Sair \n Opcao:");
scanf("%d", &op);
if(op == 1){
printf("Digite o Primeiro Elemento da PA: \n");
scanf("%f", &num);
printf("Digite a Razao da PA: \n");
scanf("%f", &raz);
num = PA(num,raz);
}
if(op == 2){
printf("Digite o Primeiro Elemento da PA: \n");
scanf("%f", &num);
printf("Digite a Razao da PA: \n");
scanf("%f", &raz);
soma = SomaPA(num,raz);
printf("Soma dos N Primeiros Elementos:\n%f \n", soma);
system("Pause");
}
if(op == 3){
printf("Digite o Primeiro Elemento da PG: \n");
scanf("%f", &num);
printf("Digite a Razao da PG: \n");
scanf("%f", &raz);
num = PG(num,raz);
}
if(op == 4){
printf("Digite o Primeiro Elemento da PG: \n");
scanf("%f", &num);
printf("Digite a Razao da PG: \n");
scanf("%f", &raz);
soma = SomaPG(num,raz);
printf("Soma dos N Primeiros Elementos:\n%f \n", soma);
system("Pause");
}
if(op == 5){
printf("Fim do Programa!\n");
system("Pause");
}
if(op>5 || op<1){
printf("Opcao Invalida!\n");
printf("\a");
system("Pause");
}
}
return 0;
}
Espero que gostem... ;)
Atenciosamente,
João Neto.