segunda-feira, 24 de outubro de 2011

Vetores em C

/* Fazer um programa para contar o número de espaços em brancos de uma string.  */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[20];
int i, quant;
quant = 0;
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
 
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == ' '){
quant += 1;
}
}
 
printf("Quantidade de espacos digitados: %d",quant);
return 0;
}




/* Refaça o programa anterior criando uma função que receberá como parâmetro a string e
retornará o número de espaços em branco que a string contem.   */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int emBranco (char s[]) {
int i = 0, quant = 0;
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == ' '){
quant += 1;
}
}
 
printf("Quantidade de espacos digitados: %d",quant);
return 0;
}
int main(){
char s[25];
int i, quant;
quant = 0;
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
emBranco(s);
 
 
return 0;
}




/* Fazer um programa para contar o número de vogais numa cadeia de caractere.  */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[40];
int numVogais, i;
char *vogais;
printf("Digite uma string: ");
scanf("%[^\n]",s);
vogais = "aeiouAEIOU";
numVogais = 0;
for (i = 0; s[i] != '\0'; i++) {
char ch;
int j;
ch = s[i];
for (j = 0; vogais[j] != '\0'; j++) {
if (vogais[j] == ch) {
numVogais += 1;
break;
}
}
}
printf("Quantidade de vogais digitados: %d",numVogais);
 
 
return 0;
}




/* Refaça o programa anterior criando uma função que receberá como parâmetro a string e
retornará o número de vogais que a string contem.   */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int countVogais (char s[]) {
char *vogais;
int numVogais, i;
 
vogais = "aeiouAEIOU";
numVogais = 0;
for (i = 0; s[i] != '\0'; i++) {
char ch;
int j;
ch = s[i];
for (j = 0; vogais[j] != '\0'; j++) {
if (vogais[j] == ch) {
numVogais += 1;
break;
}
}
}
return numVogais;
}
 
 
 
int main()
{
char s[40];
int valor;
printf("Digite uma string: ");
scanf("%[^\n]",s);
valor=countVogais(s);
printf("Quantidade de vogais digitados: %d",valor);
 
 
return 0;
}



/*Escrever um programa para ler uma string (com mais de uma palavra) e faça com que a
primeira letra de cada palavra fique em maiúscula. Para isso, basta subtrair 32 do elemento
que deseja alterar para maiúsculo. chrNome[0] = chrNome[0] – 32;
Exemplo:
Entrada: lab. de linguagem de programacao
Saída: Lab. De Linguagem De Programacao  */
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
char s[40];
int i;
 
printf("Digite uma string: ");
scanf("%[^\n]",s);
printf("String digitada: %s\n",s);
 
for (i=0; s[i] != '\0' ;i++){
char ch;
ch = s[i];
if (ch == s[0]){
s[i] = s[i] - 32;
}
 
if (ch == ' '){
s[i+1] = s[i+1] - 32;
}
}
printf("String digitada concertada: %s",s);
 
 
return 0;
}

Vetores númericos

/*Dada um tabela contendo a idade de 10 alunos, faça um algoritmo que calcule o número de
alunos com idade superior a média.
*/
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int v[10];
int i, soma, count;
float media;
soma = 0;
count = 0;
 
for (i=0; i < 10; i++){
printf("Digite a nota %d\n",i+1);
scanf("%d", &v[i]);
soma = soma + v[i];
}
media = ((float)soma)/ 10.0;
 
for (i=0; i < 10; i++){
if (media < ((float)v[i])){
count = count + 1;
}
}
 
printf("Media: %f\n", media);
printf("Quantidade de Alunos com nota maior que a media: %d\n", count);
 
 
return 0;
}




/*Dada um tabela contendo a idade de 10 alunos, faça um algoritmo que calcule o número de
alunos com idade superior a média.
*/
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int v1[10], v2[10];
int i, soma1, soma2;
 
soma1 = 0;
soma2 = 0;
 
for (i=0; i < 10; i++){
printf("Digite o valor do vetor1 na posicao %d\n",i+1);
scanf("%d", &v1[i]);
soma1 = soma1 + v1[i];
}
printf("A Soma dos valores do primeiro vetor e: %d\n\n", soma1);
 
for (i=0; i < 10; i++){
printf("Digite o valor do vetor2 na posicao %d\n",i+1);
scanf("%d", &v2[i]);
soma2 = soma2 + v2[i];
}
printf("A Soma dos valores do primeiro vetor e: %d\n\n", soma2);
 
printf("A Soma Total e: %d\n", soma1+soma2);
 
 
return 0;
}

Mais um pouco de Funções

/*Escreva uma função que receba como parâmetro 
um valor n inteiro e positivo e que calcule 
a seguinte soma: S := 1 + 1/2 + 1/3 + 1/4 + ... + 1/n. 
A função deverá retornar o valor de S.  */
#include <stdio.h>
#include <stdlib.h>
 
 
int  soma(int n){
float i, s;
s=0;
for (i=1; i<=n; i++){
s= s + 1/i ;
}
printf ("o valor de S e %f",s);
 
}
 
int main()
{
int n;
printf("Entre com o parametro\n");
scanf("%d", &n);
soma(n);
return 0;
}
 




/*Faça um programa que apresente o seguinte “Menu” para o usuário: 
     Escolha uma opção de cálculo para dois números: 
              1) Soma 
              2) Produto 
              3) Quociente 
              4) Sair 
              Opção:__  
O “Menu” acima deve ser apresentado para o usuário enquanto ele não escolher a opção 4 
(sair do programa). O usuário fornecerá 2 números se escolher as opções de cálculo 1, 2 
ou 3. Para cada opção de cálculo deve existir (obrigatoriamente) uma função definida 
(soma, produto e quociente dos dois números fornecidos pelo usuário). O resultado do 
cálculo deve ser escrito na tela.  */
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
 
int soma()
{
int a, b;
printf("Entre dois valores \n");
scanf("%d %d", &a,&b);
printf("O resultado da soma de %d + %d = %d",a,b, a+b);            
return 0;
}
 
int produto()
{
int a, b;
printf("Entre dois valores \n");
scanf("%d %d", &a,&b);
printf("O resultado da multiplicacao de %d * %d = %d",a,b, a*b);            
return 0;
}
 
int quociente()
{   
float a,b;
printf("Entre dois valores \n");
scanf("%f %f", &a,&b);
printf("O resultado da multiplicacao de %f / %f = %f",a,b, a/b);            
return 0;
}
 
 
int main(){
int a, b, operador;
float c;
 
printf("Entre com o Operador 1.+(soma) 2.*(Produto) 3./(Quociente) 4. (Sair)");
scanf("%d",&operador);
switch (operador)
{
case 1:
soma();
break;
case 2:
produto();
break;
case 3:
if (b == 0)
printf("Não existe divisão por 0");
else
quociente();
break;
case 4:       
printf("Até mais");
break;
default:
printf("Operador invalido");
break;
}
return 0;
}



/*Agora com o seguinte “Menu”
   Escolha uma opção de cálculo para um número:
   a) Fatorial
   b) Exponencial
   c) Raiz quadrada
   d) Sair
   Opção: __
 Nas opções “b” e “c” pode - se utilizar funções predefinidas do C.  */
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void sair(){
char confirm[3];
printf("Tem Certeza?");
scanf("%s",confirm);
if (confirm == 'sim')
printf("Tem dsadsadsaCerteza");
else
printf("%s", confirm);
}
 
int main(){
int operador;
 
 
printf("Entre com uma opcao\n1.(Quer Namorar com o Guilherme)\n2.(Quer Passar o resto da vida com o Guilherme)\n3.(Nao Consegue viver mais sem o Guilherme)\n4.(Sair)");
scanf("%d",&operador);
switch (operador)
{
case 1:
int n,a;
printf("Entre o valor do fatorial\n");
scanf("%d", &n);
a = fatorial(n);
printf("O resultado do fatorial de %d e %d\n",n , a);
break;
case 2:
exponencial();
 
break;
case 3:
raiz();
 
break;
case 4:
sair()
break;
default:
printf("Operador invalido");
break;
}
 
return 0;
}

segunda-feira, 10 de outubro de 2011

Exercicios de funções parte II

/*5.  Faça uma função que receba a idade de uma pessoa em anos, meses e dias e retorna essa
idade expressa em dias. */
#include <stdio.h>
#include <stdlib.h>
 
 
int convertedias(int anos, int meses, int dias){
int dias2;
dias2 = (anos * 365) + (meses * 30) + dias;
printf("Sua idade em dias e %d\n", dias2);
}
 
int main()
{
int anos, meses, dias;
printf("Informe a idade em anos, meses e dias\n");
scanf("%d %d %d", &anos, &meses, &dias);
convertedias(anos, meses, dias);
return 0;
}






/*6.  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 a seguir:
Nota     Conceito
De 0 a 49       D
De 50 a 69    C
De 70 a 89    B
De 90 a 100        A
 */
#include <stdio.h>
#include <stdlib.h>
 
 
int  conceito (int media){
if (media >= 0 && media <= 49)
printf("Conceito D");
else if (media <= 69)
printf("Conceito C");
else if (media <= 89)
printf("Conceito B");
else if (media <= 100)
printf("Conceito A");
else
printf("Valor de entrada incorreto");
 
}
 
int main()
{
int media;
printf("Entre com a media\n");
scanf("%d", &media);
conceito(media);
return 0;
}






/*7. Escrever uma função  int  contaimpar (int n1, int n2) que retorna o número de
inteiros impares que existem entre n1 e n2 (inclusive ambos, se for o caso). A função deve
funcionar inclusive se o valor de n2 for menor que n1.   */
#include <stdio.h>
#include <stdlib.h>
 
 
int  contaimpar (int n1, int n2){
int i, asw;
asw = 0;
int vect[0];
if (n1 <= n2){
for (i=n1; i<=n2; i++){
if (i%2 != 0){
asw++;}
}}
else{
for (i=n1; i>=n2; i--){
if (i%2 != 0){
asw++;}
}}
 
 
printf ("Quantida de impares e %d",asw);
}
 
int main()
{
int n1, n2;
printf("Entre com os valores\n");
scanf("%d %d", &n1, &n2);
contaimpar(n1,n2);
return 0;
}




/* 8.  Escrever uma função int divisão (int dividendo, int divisor, int * resto), que
retorna  a  divisão  inteira  (sem  casas  decimais)  de  dividendo  por  divisor  e  armazena  no
parâmetro resto, passado por referência, o resto da divisão.
int r, d;
d = divisao(5, 2, &r);
printf("Resultado:%d Resto:%d", d, r); Resultado:2 Resto:1   */
 
#include <stdio.h>
#include <stdlib.h>
 
 
int divisao(int dividendo, int divisor, int *resto){
 
*resto = dividendo%divisor;
return dividendo/divisor;
 
}
 
int main(){
int r, d, divisor, dividendo;
printf("Entre com o Dividendo e o Divisor\n");
scanf("%d %d", &dividendo, &divisor);
d = divisao(dividendo, divisor, &r);
printf("Resultado:%d Resto:%d", d, r);
}