Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Recursão (Recursividade) |
Como somar os elementos de um vetor em C usando uma função recursiva - Linguagem C para iniciantesQuantidade de visualizações: 5771 vezes |
|
Em algumas ocasiões ficamos imaginando o que pode ser feito com os métodos e funções recursivas. A resposta é: praticamente tudo. Veja abaixo um programa C completo no qual eu mostro como escrever uma função recursiva que recebe um array e mostra a soma de seus elementos (lembre-se de que um array é o mesmo que vetor, ou seja, uma matriz de uma linha e várias colunas):
#include <stdio.h>
#include <stdlib.h>
// função recursiva para somar todos os elementos de um array
int somar(int indice, int tamanho, int vetor[]){
// o caso base...hora de encerrar a recursividade
if(indice == (tamanho - 1)){
return vetor[indice];
}
else{
// ainda não é o caso base? vamos fazer uma nova chamada à função somar()
return vetor[indice] + somar(indice + 1, 10, vetor);
}
}
// função principal do programa
int main(int argc, char *argv[]){
// vamos declarar um array de 10 elementos
int valores[10];
int i, soma;
// vamos pedir ao usuário para informar os valores para o vetor
for(i = 0; i < 10; i++){
printf("Informe o valor do elemento %d: ", i);
scanf("%d", &valores[i]);
}
// vamos efetuar uma chamada à função recursiva somar();
// nota que estamos passando o índice inicial, o tamanho do
// array e o array em si
soma = somar(0, 10, valores);
printf("\nA soma dos elementos è: %d", soma);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executarmos este código C nós teremos o seguinte resultado: Informe o valor do elemento 0: 7 Informe o valor do elemento 1: 3 Informe o valor do elemento 2: 1 Informe o valor do elemento 3: 3 Informe o valor do elemento 4: 8 Informe o valor do elemento 5: 9 Informe o valor do elemento 6: 4 Informe o valor do elemento 7: 3 Informe o valor do elemento 8: 2 Informe o valor do elemento 9: 6 A soma dos elementos é: 46 |
C ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Como escrever um função que retorna uma estrutura (struct) usando a linguagem CQuantidade de visualizações: 16495 vezes |
|
Muitas vezes precisamos escrever funções que retornam estruturas, ou melhor, que alocam e retornam ponteiros para estruturas. Esta não é, definitivamente, uma tarefa para iniciantes em C. Contudo, esta dica lhe fornecerá um código completo indicando-lhe uma das formas mais simples de conseguir tal proeza. Antes de executar o código, porém, dê uma olhada atenta na função obter_livro(). Veja que esta função recebe o título, o código e o número de páginas de um livro. Em seguida a função aloca memória para uma estrutura, preenche seus membros e retorna um ponteiro para tal estrutura. Eis a listagem completa:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// define a estrutura Livro
struct Livro{
char *titulo;
int codigo;
int paginas;
};
// função que aloca e retorna um ponteiro para uma
// estrutura Livro
struct Livro* obter_livro(char *titulo, int codigo, int paginas){
// aloca memória para uma estrutura Livro
struct Livro *temp = (struct Livro*)malloc(sizeof(struct Livro));
// preeche os membros da estrutura
temp->titulo = titulo;
temp->codigo = codigo;
temp->paginas = paginas;
return temp;
}
int main(int argc, char *argv[]){
// obtém uma instância da estrutura Livro
struct Livro *a = obter_livro("Programando em Java", 345, 120);
// verifica se a estrutura foi retornada com
// sucesso
if(a != NULL){
printf("Titulo: %s\nCodigo: %d\nPaginas: %d\n",
a->titulo, a->codigo, a->paginas);
}
// obtém uma segunda instância da estrutura Livro
struct Livro *b = obter_livro("JavaScript - Guia", 540, 800);
// verifica se a estrutura foi retornada com
// sucesso
if(b != NULL){
printf("Titulo: %s\nCodigo: %d\nPaginas: %d\n",
b->titulo, b->codigo, b->paginas);
}
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: Titulo: Programando em Java Codigo: 345 Paginas: 120 Titulo: JavaScript - Guia Codigo: 540 Paginas: 800 Pressione qualquer tecla para continuar... |
VisuAlg ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em VisuAlg - Como efetuar cálculos de porcentagem em VisuAlgQuantidade de visualizações: 3100 vezes |
|
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em VisuAlg. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, valor_final: real
inicio
valor <- 178.00 // valor original
percentual <- 15.0 / 100.0 // 15%
valor_final <- valor + (percentual * valor)
// mostra o resultado
escreva("O valor final do produto é: ", valor_final)
// O resultado será 204,70
fimalgoritmo
Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, valor_final: real
inicio
valor <- 250.00; // valor original
percentual <- 8.0 / 100.0 // 8%
valor_final <- valor - (percentual * valor)
// mostra o resultado
escreva("O valor final do produto é: ", valor_final)
// O resultado será 230,00
fimalgoritmo
Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
perguntas, acertos: real
inicio
perguntas <- 90.0
acertos <- 72.0
// mostra a porcentagem de acertos
escreva("Porcentagem de acertos: ")
escreval(((acertos / perguntas) * 100), "%")
// mostra a porcentagem de erros
escreva("Porcentagem de erros: ")
escreval((((perguntas - acertos) / perguntas) * 100), "%")
// Os resultados serão 80% e 20%
fimalgoritmo
Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor_anterior, novo_valor, porcentagem_lucro: real
inicio
valor_anterior <- 300.0 // valor anterior
novo_valor <- 340.0 // valor novo
// calcula a porcentagem de lucro
// efetua o cálculo
porcentagem_lucro <- ((novo_valor * 100) / valor_anterior) - 100
escreva("A porcentagem de lucro foi de: ", porcentagem_lucro, "%")
// O resultado será 13,33
fimalgoritmo
Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em VisuAlg:
algoritmo "Algoritmo que calcula porcentagem"
var
// variáveis usadas na resolução do problema
valor, percentual, comissao: real
inicio
valor <- 70.0 // valor do produto
percentual <- 5.0 / 100.0 // 5%
// calcula a comissão
comissao <- percentual * valor
// mostra o resultado
escreva("O valor repassado ao vendedor é: ", comissao)
// O resultado será 3,5
fimalgoritmo
|
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 984 vezes |
|
Pergunta/Tarefa: Considere os seguintes vetores:
// dois vetores de 5 inteiros cada
int a[] = {50, -2, 9, 5, 17};
int b[] = new int[5];
Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
// dois vetores de 5 inteiros cada
int a[] = {50, -2, 9, 5, 17};
int b[5];
int i;
// vamos preencher o segundo vetor de forma que a soma dos
// valores de seus elementos seja 30
for(i = 0; i < 5; i++){
b[i] = 30 - a[i];
}
// vamos mostrar o resultado
printf("Valores no vetor a: ");
for(i = 0; i < 5; i++){
printf("%d ", a[i]);
}
printf("\nValores no vetor b: ");
for(i = 0; i < 5; i++){
printf("%d ", b[i]);
}
printf("\n\n");
system("PAUSE");
return 0;
}
|
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular a Energia Potencial Gravitacional de um corpo dado a sua massa e altura em CQuantidade de visualizações: 2688 vezes |
|
A Energia Potencial Gravitacional ou Energia Gravitacional é a energia potencial que um objeto massivo tem em relação a outro objeto massivo devido à gravidade. É a energia potencial associada ao campo gravitacional, que é parcialmente convertida em energia cinética quando os objetos caem uns contra os outros. A energia potencial gravitacional aumenta quando dois objetos são separados. A fórmula para obtenção da Energia Potencial Gravitacional de um corpo em relação à sua massa e distância do chão, ou seja, da superfície terrestre, é: \[ E_\text{pg} = \text{m} \cdot \text{g} \cdot \text{h} \] Onde: Epg: energia potencial gravitacional (em joule, J). m: massa do corpo (em kg). g: aceleração da gravidade (m/s2). h: altura do objeto em relação ao chão (em metros). Como podemos ver, a Energia Potencial Gravitacional está diretamente relacionada à distância do corpo em relação à superfície terrestre. Dessa forma, quanto mais distante da terra o objeto estiver, maior a sua energia gravitacional. Isso nós diz também que, um objeto de altura zero possui Energia Potencial Gravitacional nula. Vamos ver um exemplo agora? Observe o seguinte enunciado: 1) Uma pessoa levanta um tijolo com peso de 2 quilogramas à distância de 1,5 metros do chão. Qual é a Energia Potencial Gravitacional deste corpo? Como o exercício nos dá a massa do objeto em kg e a distância dele em relação ao chão já está em metros, tudo que temos a fazer é jogar na fórmula. Veja o código C completo para o cálculo:
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]){
// gravidade terrestre em m/s2
float gravidade = 9.80665;
// massa do corpo
float massa = 2; // em kg
// altura do corpo em relação ao chão
float altura = 1.5; // em metros
// vamos calcular a energia potencial gravitacional
float epg = massa * gravidade * altura;
// mostramos o resultado
printf("A Energia Potencial Gravitacional é: %fJ", epg);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: A Energia Potencial Gravitacional é: 29.419950J |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




