Buscar

Atividade Introdução à Informática


Continue navegando


Prévia do material em texto

Atividade Introdução à Informática – 4 Bimestre - 2015 
Para cada exercício elaborar a implementação em C. 
1. Faça uma função que recebe por parâmetro um número inteiro que corresponde a um mês do ano e exiba o 
nome, por extenso, do respectivo mês (ex: 1 Janeiro). Implemente na função main o código necessário 
para a utilização dessa nova função. 
2. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna 1 caso o valor seja primo e 0 
caso não seja. Implemente na função main o código necessário para a utilização dessa nova função. 
3. Faça uma função chamada MMC que calcule o Mínimo Múltiplo Comum de dois números inteiros positivos 
dados. Implemente na função main o código necessário para a utilização dessa nova função. Sugestão: 
utilize a função primo desenvolvida no exercício anterior. 
4. Faça quatro funções que calculem a soma, a soma dos pares, a soma dos ímpares e a média dos n 
primeiros números inteiros positivos. Implemente na função main o código necessário para a utilização 
dessas novas funções. 
5. Faça uma função que verifique se um valor é perfeito ou não. Um valor é dito perfeito quando ele é igual a 
soma dos seus divisores excetuando ele próprio. (Ex: 6 é perfeito, 6 = 1 + 2 + 3, que são seus divisores). A 
função deve retornar 1 caso o valor seja perfeito e 0 em caso contrário. Implemente na função main o código 
necessário para a utilização dessa nova função. 
6. Faça uma função com a seguinte assinatura “int trocaChar(char ch1, char ch2);”, que substitua todas as 
ocorrências do caractere ch1 em f1 pelo caractere ch2 ( obs: a String f1 deve ser declarada como variável 
global). Implemente na função main o código necessário para a utilização dessa nova função. 
7. Faça uma função que recebe a média final de um aluno por parâmetro e retorna o seu conceito, conforme a 
tabela abaixo. Implemente na função main o código necessário para a utilização dessa nova função. 
Nota Conceito 
de 0,0 a 2,4 E 
de 2,5 a 4,9 D 
de 5,0 a 6,9 C 
de 7,0 a 8,9 B 
de 9,0 a 10,0 A 
8. Faça uma função que recebe, por parâmetro, dois valores X e Z e retorna X
z
 . Implemente na função main o 
código necessário para a utilização dessa nova função. Obs: não utilizar funções ou operadores de potência 
prontos. 
 
9. Faça uma função chamada ApenasConsoantes() que lê uma String (variável global) e substitui todos as 
vogais por espaço. Implemente na função main o código necessário para a leitura da String e utilizando essa 
nova função exibir a String resultante. 
 
10. Faça uma função que recebe por parâmetro o raio de uma esfera e retorne o seu volume (v = 4/3.PI.R
3
). 
Implemente na função main o código necessário para a utilização dessa nova função. 
 
11. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa 
em dias (considerar: ano = 365 dias e mês = 30 dias). Implemente na função main o código necessário para 
a utilização dessa nova função. 
 
12. Faça um programa que leia as medidas dos lados de um triângulo e a partir desses valores exibe a sua 
classificação. O programa deve aceitar apenas valores positivos para as medidas dos lados. Para obter o 
código da classificação utilize a função TipoTriangulo que retorna: 0  não formam um triângulo. 1  
triângulo equilátero. 2  triângulo isósceles. 3  triângulo escaleno. 
 
13. Um problema tradicional é o de encontrar o enésimo termo da série de Fibonacci. As series de Fibonacci são 
de grande importância matemática, e a lei básica é que a partir do terceiro termo, todos os termos são a 
soma dos dois últimos. Os primeiros termos da sequência são: 1, 1, 2, 3, 5, 8, 13, 21, 34... O primeiro e o 
segundo termos são 1. O terceiro termo é 2 (1+1). O quarto termo é 3 (1+2). O quinto termo é 5 (2+3) ... Faça 
uma função que encontre o enésimo termo da sequência de Fibonacci. Implemente na função main o código 
necessário para a utilização dessa nova função. 
Atividade Introdução à Informática – 4 Bimestre ­ 2015 
 
Para cada exercício elaborar a implementação em C. 
 
1.Façaumafunçãoquerecebeporparâmetroumnúmerointeiroquecorrespondea                          
ummêsdoanoeexibaonome,porextenso,dorespectivomês(ex:1⇒ Janeiro).                              
Implemente na função main o código necessário para a utilização dessa nova                       
função. 
 
#include <stdio.h> 
#include <stdlib.h>  
#include <string.h>  
 
char* nomeMes(int mes) 
{ 
    char *meses[] = {"Janeiro","Fevereiro","Marco","Abril","Maio","Junho", 
                     "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"}; 
 
    return meses[mes ­ 1]; 
} 
 
int main() 
{ 
    int mes = 0; 
 
    printf("Digite o numero do mes, ex: Janeiro = 1.\n"); 
    scanf("%d", &mes); 
 
if (mes < 1 | mes > 12) 
{ 
    printf("Valor invalido!"); 
    } 
    else 
    { 
        printf(nomeMes(mes)); 
    } 
 
    return 0; 
} 
 
   
2. Faça uma função que recebe por parâmetro um valor inteiro e positivo e                           
retorna1casoovalorsejaprimoe0casonãoseja.Implementenafunçãomain                           
o código necessário para a utilização dessa nova função. 
 
#include <stdio.h>  
#include <stdlib.h>  
 
char* primo(int numero) 
{ 
    int indice, divisoes = 0; 
    char* resultado; 
   
    if (numero > 1) 
    { 
        for (indice = 1; indice <= numero; indice++) 
        { 
            if (numero % indice == 0) divisoes++;   
        } 
 
        if (divisoes == 2) 
        { 
           resultado = "1"; 
        } 
        else 
        { 
            resultado = "0";   
        } 
    } 
    return resultado; 
} 
 
int main()  
{  
    int numero; 
 
    printf("Informe um numero: "); 
    scanf("%d", &numero); 
 
    printf(primo(numero)); 
   
    return 0;  
} 
 
   
3. Faça uma função chamada MMC que calcule o Mínimo Múltiplo Comum de dois                           
númerosinteirospositivosdados.Implementenafunçãomainocódigonecessário                    
para a utilização dessa nova função. Sugestão: utilize a função primo                     
desenvolvida no exercício anterior. 
 
// completar este aqui! 
 
int mmc(int num1, int num2) { 
 
    int mmc, aux, i; 
 
    for (i = 2; i <= num2; i++) { 
        aux = num1 * i; 
        if ((aux % num2) == 0) { 
            mmc = aux; 
            i = num2 + 1; 
        } 
    } 
    return mmc; 
} 
 
 
 
 
   
4. Faça quatro funções que calculem a soma, a soma dos pares, a soma dos                             
ímpares e a média dos n primeiros números inteiros positivos. Implemente na                       
função main o código necessário para a utilização dessas novas funções. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int soma_todos(int maximo) 
{ 
    int indice, total = 0; 
   
    for (indice = 1; indice <= maximo; indice++) 
    { 
        total = total + indice; 
    } 
    return total; 
} 
 
int soma_pares(int maximo) 
{ 
    int indice, total = 0; 
   
    for (indice = 1; indice <= maximo; indice++) 
    { 
        if (indice % 2 == 0) 
        { 
            total = total + indice;   
        } 
    } 
    return total; 
} 
 
int soma_impares(int maximo) 
{ 
    int indice, total = 0; 
   
    for (indice = 1; indice <= maximo; indice++) 
    { 
        if (indice % 2 == 1) 
        { 
            total = total + indice;   
        } 
    } 
    return total; 
} 
 
float soma_media(int maximo) 
{ 
    float total = (float)soma_todos(maximo) / maximo; 
   
    return total; 
} 
 
int main() 
{ 
    int maximo = 0; 
    int result_soma, result_soma_pares, result_soma_impares = 0; 
    float result_soma_media; 
 
    printf("Digite um numero inteiro positivo: "); 
    scanf("%d", &maximo);if (maximo < 0) 
    { 
        printf("Valor nao pode ser negativo!"); 
    } 
    else 
    { 
      result_soma = soma_todos(maximo); 
  printf("Resultado da soma: %d", result_soma); 
   
  result_soma_pares = soma_pares(maximo); 
  printf("\nResultado da soma dos pares: %d", result_soma_pares); 
   
  result_soma_impares = soma_impares(maximo); 
  printf("\nResultado da soma dos impares: %d", result_soma_impares); 
   
  result_soma_media = soma_media(maximo); 
  printf("\nResultado da soma da media: %7.3f", result_soma_media); 
    } 
    return 0; 
} 
 
 
 
   
5.Façaumafunçãoqueverifiqueseumvaloréperfeitoounão.Umvalorédito                               
perfeito quando ele é igual a soma dos seus divisores excetuando ele próprio.                         
(Ex: 6 é perfeito, 6 = 1 + 2 + 3, que são seus divisores). A função deve                                   
retornar 1 caso o valor seja perfeito e 0 em caso contrário. Implemente na                           
função main o código necessário para a utilização dessa nova função. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
char* perfeito(int numero) 
{ 
    char* resultado; 
    int indice, soma = 0; 
   
    for (indice = 1; indice < numero; indice++) 
    { 
        if (numero % indice == 0) 
        { 
            soma = soma + indice; 
        } 
    } 
    if (soma == numero) 
    { 
        resultado = "1"; 
    } 
    else 
    { 
        resultado = "0"; 
    } 
    return resultado; 
} 
 
int main() 
{ 
    int numero = 0; 
    char* resultado; 
 
    printf("Digite um numero: "); 
    scanf("%d", &numero); 
   
    if (numero < 0) 
    { 
        printf("Valor nao pode ser negativo!"); 
    } 
    else 
    { 
        resultado = perfeito(numero); 
        printf("Resultado: "); 
        printf(resultado); 
    } 
    return 0; 
} 
 
   
6. Faça uma função com a seguinte assinatura “int trocaChar(char ch1, char                       
ch2);”, que substitua todas as ocorrências do caractere ch1 em f1 pelo                       
caractere ch2 (obs: a String f1 deve ser declarada como variável global).                       
Implemente na função main o código necessário para a utilização dessa nova                       
função. 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
char f1[]; 
 
int trocaChar(char ch1, char ch2) 
{ 
    int indice; 
    int total = strlen(f1); 
   
    for (indice = 1; indice <= total; indice++) 
    { 
        if (f1[indice] == ch1) 
        { 
            f1[indice] = ch2; 
        } 
    } 
    return 0; 
} 
 
int main() 
{ 
    char ch1, ch2; 
 
    printf("Digite uma palavra: \n"); 
    scanf("%s", &f1); 
   
    fflush(stdin); 
   
    printf("Digite a letra a ser substituida: \n"); 
    scanf("%c", &ch1); 
   
    fflush(stdin); 
   
    printf("Digite a letra substituta: \n"); 
    scanf("%c", &ch2); 
 
    fflush(stdin); 
 
    printf("Resultado: "); 
    trocaChar(ch1, ch2); 
    printf("%s", f1); 
   
    return 0; 
} 
 
 
   
7.Façaumafunçãoquerecebeamédiafinaldeumalunoporparâmetroeretorna                             
o seu conceito, conforme a tabela abaixo. Implemente na função main o código                         
necessário para a utilização dessa nova função. 
 
Nota   Conceito 
de 0,0 a 2,4  E 
de 2,5 a 4,9  D 
de 5,0 a 6,9  C 
de 7,0 a 8,9  B 
de 9,0 a 10,0  A 
 
#include <stdio.h> 
#include <stdlib.h> 
 
char media_final(float media) 
{ 
    char conceito; 
   
    if (media >= 0.0 & media <= 2.4) 
    { 
        conceito = 'E'; 
    } 
    else if (media >= 2.5 & media <= 4.9) 
    { 
        conceito = 'D'; 
    } 
    else if (media >= 5.0 & media <= 6.9) 
    { 
        conceito = 'C'; 
    } 
    else if (media >= 7.0 & media <= 8.9) 
    { 
        conceito = 'B'; 
    } 
    else if (media >= 9.0 & media <= 10.0) 
    { 
        conceito = 'A'; 
    } 
    return conceito; 
} 
 
int main() 
{ 
    float media; 
 
    printf("Digite a media do aluno: \n"); 
    scanf("%f", &media); 
   
    fflush(stdin); 
   
    if (media > 0) 
    { 
        printf("Conceito: "); 
        printf("%c", media_final(media)); 
    } 
    else 
    { 
        printf("Media nao pode ser negativa!"); 
    }   
   
    return 0; 
} 
 
 
 
   
8. Faça uma função querecebe,porparâmetro,doisvaloresXeZeretornaX​Z​.                           
Implemente na função main o código necessário para a utilização dessa nova                       
função. Obs: não utilizar funções ou operadores de potência prontos.  
 
#include <stdio.h> 
#include <stdlib.h> 
 
int potencia(int base, int expoente) 
{ 
    int contador, resultado = 1; 
   
    for (contador = 1; contador <= expoente; contador++) 
    { 
        resultado = resultado * base; 
    } 
 
    return resultado; 
} 
 
int main() 
{ 
    int base, expoente, resultado = 0; 
 
    printf("Digite o numero da base:\n"); 
    scanf("%d", &base); 
   
    printf("Digite o numero do expoente:\n"); 
    scanf("%d", &expoente); 
   
    if (base < 0) 
    { 
        printf("Valor da base nao pode ser negativo!"); 
    } 
    if (expoente < 0) 
    { 
        printf("Valor do expoente nao pode ser negativo!"); 
    } 
    else 
    { 
        resultado = potencia(base, expoente); 
 
        printf("Resultado %d", resultado);  
    } 
    return 0; 
} 
 
   
9. Faça uma função chamada ApenasConsoantes() que lê uma String (variável                     
global) e substitui todos as vogais por espaço. Implemente na função main o                         
códigonecessárioparaaleituradaStringeutilizandoessanovafunçãoexibir                       
a String resultante. 
 
//Obs.: este não foi testado! 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
char* apenasConsoantes(char* palavra) 
{ 
    char* vogais[] = {"a", "e", "i", "o", "u"}; 
    int i; 
    int j; 
   
    for (i = 1; i <= strlen(palavra); i++) 
    { 
        for (j = 1; j <= strlen(vogais); j++) 
        { 
            if (palavra[i] == vogais[j]) 
            { 
                palavra[i] == " "; 
                break; 
            } 
        } 
    } 
    return palavra; 
} 
 
int main() 
{ 
    char* palavra; 
   
    printf("Digite uma palavra com vogais: \n"); 
    scanf("%s", &palavra); 
 
    fflush(stdin); 
   
    printf("Palavra sem vogais: %s", apenasConsoantes(palavra)); 
   
    return 0; 
} 
 
   
10. Faça uma função que recebe por parâmetro o raio de uma esfera e retorne o 
seu volume (v = 4/3.PI.R​3​). Implemente na função main o código necessário para a 
utilização dessa nova função. 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
 
float potencia(float base, int expoente) 
{ 
    int contador = 1; 
    float resultado = 1; 
   
    for (contador = 1; contador <= expoente; contador++) 
    { 
        resultado = resultado * base; 
    } 
    return resultado; 
} 
 
float volume(float raio) 
{ 
    float resultado = (4.0/3.0) * M_PI * potencia(raio, 3); 
   
    return resultado; 
} 
 
int main() 
{ 
    float raio = 0.0; 
   
    printf("Digite o raio da esfera: \n"); 
    scanf("%f", &raio); 
    if (raio < 0) 
    { 
        printf("Raio invalido!"); 
        return 0; 
    } 
    fflush(stdin); 
   
    printf("Volume da esfera: %7.3f", volume(raio)); 
   
    return 0; 
} 
 
 
   
11. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e                                 
retorna essa idade expressa em dias (considerar: ano = 365 dias e mês = 30                             
dias). Implemente na função main o código necessário para a utilização dessa                       
nova função. 
 
#include <stdio.h>#include <stdlib.h> 
 
int total_dias(int anos, int meses, int dias) 
{ 
    int resultado = anos * 365 + meses * 30 + dias; 
    return resultado; 
} 
 
int main() 
{ 
    int anos, meses, dias = 0; 
   
    printf("Digite quantos anos a pessoa possui: \n"); 
    scanf("%d", &anos); 
    if (anos < 0) 
    { 
        printf("Valor invalido!"); 
        return 0; 
    } 
    fflush(stdin); 
   
    printf("Agora digite os meses que a pessoa possui: \n"); 
    scanf("%d", &meses); 
    if (meses < 0) 
    { 
        printf("Valor invalido!"); 
        return 0; 
    } 
    fflush(stdin); 
   
    printf("Agora digite os dias que a pessoa possui: \n"); 
    scanf("%d", &dias); 
    if (dias < 0) 
    { 
        printf("Valor invalido!"); 
        return 0; 
    } 
    fflush(stdin); 
   
    printf("Total de dias: %d", total_dias(anos, meses, dias)); 
   
    return 0; 
} 
 
   
12. Faça um programa que leia as medidas dos ladosdeumtriânguloeapartir                             
desses valores exibe a sua classificação. O programa deve aceitar apenas                     
valores positivos para as medidas dos lados. Para obter o código da                       
classificação utilize a função TipoTriangulo que retorna: 0 ⇒ não formam um                       
triângulo. 1 ⇒ triângulo equilátero. 2 ⇒ triângulo isósceles. 3 ⇒ triângulo                       
escaleno. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int tipoTriangulo(int la, int lb, int lc) 
{ 
    int resultado; 
   
    if (la == 0 | lb == 0 | lc == 0) 
    { 
        resultado = 0; 
    } 
    else if (la == lb & lb == lc & lc == la) 
    { 
        resultado = 1; 
    } 
    else if ((la == lb & lc != la) | (lb == lc & la != lb) | (lc == la & lb != lc)) 
    { 
        resultado = 2; 
    } 
    else if (la != lb & lb != lc & lc != la) 
    { 
        resultado = 3; 
    } 
    return resultado; 
} 
 
int main() 
{ 
    int la, lb, lc; 
   
    printf("Digite a medida do lado A do triangulo: \n"); 
    scanf("%d", &la); 
    if (la < 0) 
    { 
        printf("Medida invalida!"); 
        return 0; 
    } 
    fflush(stdin);   
   
    printf("Digite a medida do lado B do triangulo: \n"); 
    scanf("%d", &lb); 
    if (lb < 0) 
    { 
        printf("Medida invalida!"); 
        return 0; 
    } 
    fflush(stdin);   
   
    printf("Digite a medida do lado C do triangulo: \n"); 
    scanf("%d", &lc); 
    if (lc < 0) 
    { 
        printf("Medida invalida!"); 
        return 0; 
    } 
    fflush(stdin);   
   
    printf("Classificacao: %d", tipoTriangulo(la, lb, lc)); 
   
    return 0; 
} 
 
 
   
13. Um problema tradicional é o de encontrar o enésimo termo da série de                           
Fibonacci.AsseriesdeFibonaccisãodegrandeimportânciamatemática,ealei                       
básica é que a partir do terceiro termo, todos os termos são a soma dos dois                               
últimos.Osprimeirostermosdasequênciasão:1,1,2,3,5,8,13,21,34...                               
Oprimeiroeosegundotermossão1.Oterceirotermoé2(1+1).Oquartotermo                           
é3(1+2).Oquintotermoé5(2+3)...Façaumafunçãoqueencontreoenésimo                            
termo da sequência de Fibonacci.Implementenafunçãomainocódigonecessário                      
para a utilização dessa nova função. 
 
#include<stdio.h> 
  
int Fibonacci(int); 
  
main() 
{ 
    int n, i = 0, c; 
 
    printf("Digite um numero para encontrar o enésimo termo da série de Fibonacci: \n"); 
    scanf("%d",&n); 
 
    printf("Fibonacci serie: \n"); 
  
    for ( c = 1 ; c <= n ; c++ ) 
    { 
        printf("%d\n", Fibonacci(i)); 
        i++;  
    } 
 
    return 0; 
} 
  
int Fibonacci(int n) 
{ 
    if ( n == 0 ) 
        return 0; 
    else if ( n == 1 ) 
        return 1; 
    else 
        return ( Fibonacci(n­1) + Fibonacci(n­2) ); 
}