treinamento - obi linguagem c wladimir araújo tavares

86
Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Upload: ines-paixao-faro

Post on 07-Apr-2016

244 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Treinamento - OBILinguagem C

Wladimir Araújo Tavares

Page 2: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Histórico:

1970: Denis Ritchie desenha uma linguagem apartir do BCPL nos laboratórios da BellTelephones, Inc. Chama a linguagem de B. 1978:  Brian Kerningham junta-se a Ritchie paraaprimorar a linguagem. A nova versão chama-seC. Pelas suas características de portabilidade eestruturação já se torna popular entre osprogramadores.

Page 3: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Continuação...

1980: A linguagem é padronizada peloAmerican National Standard Institute: surge o ANSI C.

1992: O C se torna ponto de concordância entreteóricos do desenvolvimento da teoria deObject  Oriented Programming (programaçãoorientada a objetos): surge o C++.

Page 4: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Características : • Compilada• Case Sensitive• Médio Nível• Sistema de tipo fraca• Permite o controle total• Estruturada

Page 5: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

//Isso eh um comentário/*Os comentários são ignorados pelo compilador*/#include <stdio.h>/* Diz ao compilador que ele deve incluir o arquivo stdio.hstd=standard io = Input/Output*/#include <stdlib.h>/*Diz ao compilador que ele deve incluir o arquivo stdlib.h std=standard lib=library*/int main(){ puts("Hello World!!!!");//Escreve na tela puts("Uma funcao de saida"); system("PAUSE"); return 0;}

Page 6: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Observações:

main ( ) primeira função a ser executada

{ início da função } fim da função puts(string) escreve a string na tela

Page 7: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Caracteres de Controle:• \n nova linha• \r “enter”• \t tabulação (tab)• \b retrocesso• \“ aspas• \ \ barra• \a beep• \0 Nulo

Page 8: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){

printf("\tEscreva issa\bo entre \"Hello\"\n\a");

system("PAUSE");}

Page 9: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Código de Formatação:

• %c caracter• %d decimal• %f ponto flutuante• %s cadeia de caracteres(string)

Page 10: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ printf ("Caracteres: %c %c \n", 'a', 65); printf ("Decimals: %d \n", 1977); printf ("Antecedido com brancos: %10d \n", 1977);

printf ("Antecedido com zeros : %010d \n", 1977);

printf (“Reais: %.2f %.4f\n", 3.1416, 3.1416);

printf ("%s \n", "Uma palavra"); system("PAUSE");}

Page 11: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Variáveis:

Espaço de memória de um certo tipo dedado associado a um nome para referenciarseu conteúdo.

Page 12: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int idade; idade = 12;printf (" A minha idade é : %d", idade);

system("PAUSE"); return 0;}

Page 13: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Tipos Básicos:Tipo Bytes Intervalochar 1 -128 a 127

int 4 -32.768 a 32.767

float 4 3.4e-38 a 3.4e+38

double 8 1.7e-308 a 1.7e+308

Page 14: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ char c; int x; float f; double d; printf("O tamanho do caracter eh %d\n",sizeof(c)); printf("O tamanho do inteiro eh %d\n",sizeof(x)); printf("O tamanho do ponto flutuante %d\n",sizeof(f)); printf("O tamanho do double eh %d\n",sizeof(d)); system("PAUSE");}

Page 15: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Nome de variáveis:

Não pode começar com números.

Devem começar com letra ou sublinhados.

Não pode-se definir o nome das variáveiscom o mesmo nome das palavras chaves.

Não possuem acentuação e nem cedilha.

Page 16: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Palavras Chaves

auto   double  int   struct  break   else   long   switch  case   enum   register typedef  char   extern  return   union  const   float   short   unsigned  continue  for   signed   void  default   goto   sizeof   volatile  do   if   static   while  

Page 17: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Comando if

if <condição> <comando> | <lista_de_comandos>

<condição>São expressões que admitem um valorVerdade.

Page 18: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int idade = 12; if ( idade > 10 ) printf("Idade maior que 10\n"); system("PAUSE");}

Page 19: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

OPERADORES ARITMÉTICOS

• + Soma• - Subtração• * Multiplicação• / Divisão• % RestoEx:7 % 2 = 18 % 3 = 2

Page 20: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Exercícios: Qual é o valor de x : x = 2 * 3 + 3 ; x = 2*( 3 + 3); x = 3 + 4 * 2; x = 4 % 2 + 2; x = 4 %(2 + 2); x = 2 – 2 – 3; x = 4 / 2 / 2 ; X = 4 * 2 * 2;

Page 21: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

OPERADORES DE INCREMENTO E DECREMENTO

• ++ incrementa a variável• -- decrementa a variável

Ex:i++; i = i + 1;i--; i = i - 1;

Page 22: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Exercício:

x = 22; y = x++; x = ? y = ? x = 22; y = ++x; x = ? y = ?

Page 23: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

OPERADORES RELACIONAIS

• > maior• >= maior ou igual• < menor• <= menor ou igual• == igualdade• != diferença

Page 24: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

OPERADORES LÓGICOS

&& e || or ! não Ex: (10 > 5) V ( (10 > 5) && ( 2 > 3 ) ) F ( (10 > 5) || ( 2 > 3 ) ) V ( (10 > 5) && ! ( 2 > 3 ) ) V

Page 25: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ char nome[ 20 ]; int idade; printf("Entre com o seu nome:"); scanf("%s",nome); printf("Entre com a sua idade:"); scanf("%d",&idade); printf("Boa Noite , Sr. %s\n",nome); if(idade <= 18 ) printf("Não vai para a escola!!!\n"); if( (idade > 18) && (idade <= 65 ) ) printf("Não vai trabalhar hj!!!\n"); if( idade > 65 ) printf("Como está a aposentadoria"); system("PAUSE"); return 0;}

Page 26: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

If-else

If <condição> <comando> | <lista_de_comandos>else <comando> | <lista_de_comandos>

Page 27: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ char nome[ 20 ]; int idade; printf("Entre com o seu nome:"); scanf("%s",nome); printf("Entre com a sua idade:"); scanf("%d",&idade); printf("Boa Noite , Sr. %s\n",nome); if(idade <= 18 ) printf("Não vai para a escola!!!\n"); else{ if ( idade <= 65 ) printf("Não vai trabalhar hj!!!\n"); else printf("Como está a aposentadoria"); } system("PAUSE"); return 0;}

Page 28: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int a,b,c; printf("Entre com tres numeros:"); scanf("%d %d %d",&a,&b,&c); if (a > b)

if (a > c)printf("\nO Maior é %d\n",a);

else printf("\nO Maior é %d\n",c);

else if (b > c)

printf("\nO Maior é %d\n",b); else

printf("\nO Maior é %d\n",c); system("PAUSE");}

Page 29: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Comando for

for ( <início> ; <condição> ; <incremento> ) <comando>| <lista_comando>

Ex:for(i=0;i < 10 ;i++) printf(“%d”,i);

Page 30: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int i; //Imprime os pares de 0 ate 10 for(i =0;i<=10;i=i+2){ printf("%d\n",i); } //Imprime a tabuada de 2 for(i=0;i<=10;i++){ printf("2 x %2d = %d\n",i,2*i); } system("PAUSE");}

Page 31: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>//Testa se eh primoint main(){ int n,i,ehprimo; printf("Entre com um n:"); scanf("%d",&n); ehprimo = 1; for(i=2;i<n;i++) if(n%i==0){ ehprimo = 0; break; } if( ehprimo ) printf("%d eh primo\n",n); else printf("%d nao eh primo\n",n); system("PAUSE");}

Page 32: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int n,i,ehprimo; printf("Entre com um n:"); scanf("%d",&n); if( n%2==0 ) ehprimo = 0; else{ ehprimo = 1; for(i=3;i<n;i+=2) if(n%i==0){ ehprimo = 0; break; } } if( ehprimo ) printf("%d eh primo\n",n); else printf("%d nao eh primo\n",n); system("PAUSE");}

Page 33: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Comando whilewhile <condição> <comando> | <lista_comandos>

Ex: i = 0;

while( i < 10 ){ printf(“%d\n”,i); i++; }

Page 34: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int n,soma; printf("Entre com um numero:"); scanf("%d",&n); soma = 0; while( n > 0){ soma = soma + n ; printf("Entre com um numero:"); scanf("%d",&n); } printf("A soma eh %d\n",soma); system("PAUSE");}

Page 35: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int n,min; printf("Entre com um numero:"); scanf("%d",&n); min = n; while( n >= 0){ if( n < min ) min = n; printf("Entre com um numero:"); scanf("%d",&n); } printf("O menor eh %d\n",min); system("PAUSE");}

Page 36: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Comando do-while

do <comando>| <lista_de_comando>while <condição>;

i = 0;do{ printf(“%d”,i); i++;}while( i < 10 );

Page 37: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int i; do{ printf("\n\tEscolha uma opção:\n\n"); printf("\t(1)........Masculino\n"); printf("\t(2)........Feminino\n"); printf("Entre com a sua opcao:"); scanf("%d",&i); }while( (i<1)||(i>2)); if(i==1) printf("Vc eh homem\n"); else printf("Vc eh mulher\n"); system("PAUSE");}

Page 38: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Loop Infinito

É um loop ( repetição ) que será executadopara sempre (ou não existe condição deparada ou a condição é sempre verdadeira),a não ser que seja interrompida.

Page 39: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char c; for(;;){ printf("Vc quer continuar(S\\N)?"); c = getchar(); getchar(); if( c == 'N'){ printf("O programa vai ser interrompido!!"); break; }else{ if(c=='S') printf("Parabens vc quer continuar\n"); else printf("Vc escolheu uma opção inexistente\n"); } }}

Page 40: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char c; while(1){ printf("Vc quer continuar(S\\N)?"); c = getchar(); getchar(); if( c == 'N'){ printf("O programa vai ser interrompido!!"); break; }else{ if(c=='S') printf("Parabens vc quer continuar\n"); else printf("Vc escolheu uma opção inexistente\n"); } }}

Page 41: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int b,h,i,j; printf("Entre com a base:"); scanf("%d",&b); printf("Entre com a altura:"); scanf("%d",&h); for(i=1;i<=h;i++){ printf("\t"); if((i==1)||(i==h)) for(j=1;j<=b;j++) printf("*"); else{ printf("*"); for(j=1;j<=b-2;j++) printf(" "); printf("*"); } printf("\n"); } system("PAUSE");}

Page 42: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int h,i,j; printf("Entre com a altura:"); scanf("%d",&h); for(i=1;i<=h;i++){ for(j=1;j<=h-i;j++) printf(" "); for(j=1;j<=i;j++) printf(" *"); printf("\n"); } system("PAUSE");}

Page 43: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

StringUm sequência de caracteres terminado com umcaractere nulo.Podemos acessar cadacaractere através de um índice.

‘J’ ‘O’ ‘A’ ‘O’ \0 ... ...

Nesse caso vamos supor que nome = “JOAO”nome[0] = ‘J’;nome[1] = ‘O’;nome[2] = ‘A’;nome[3]= ‘O’;nome[4]= ‘\0’;

Page 44: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char nome[20],c; printf("Entre com um o seu nome:"); scanf("%s",nome); printf("O primeiro caracter do meu nome eh %c\n",nome[0]);

nome[0] = 'X'; printf("Meu nome agora eh %s\n",nome); system("PAUSE");}

Page 45: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char nome[15]; int x; printf("Entre com o seu nome:"); scanf("%s",nome); if((nome[0] >= 'a') && ( nome[0] <= 'z') ){ x = nome[0] - 'a'; nome[0] = 'A' + x; } printf("Seu nome eh %s\n",nome); system("PAUSE");}

Page 46: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char nome[15]; int i,tamanho; tamanho=0; printf("Entre com o seu nome"); scanf("%s",nome); for(i=0;nome[i]!='\0';i++) tamanho++; printf("O numero de caracteres eh %d\n",tamanho);

system("PAUSE");}

Page 47: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ char nome[15]; int i; printf("Entre com o seu nome"); scanf("%s",nome); for(i=0;nome[i]!='\0';i++){ if((nome[i] >= 'a') && ( nome[i] <= 'z') ){ x = nome[i] - 'a'; nome[i] = 'A' + x; } } printf("Seu nome eh %s\n",nome); system("PAUSE");}

Page 48: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ char nome[20]; int d,n,p,i; scanf("%s",nome); scanf("%d",&d); n = 'Z'-'A' + 1; for(i=0;nome[i]!='\0';i++){ if(nome[i]>='A' && nome[i]<='Z'){ p = nome[i] - 'A'; p = ( p + d ) % n + 'A'; nome[i] = p; } } printf("Seu novo nome eh %s\n",nome); system("PAUSE");}

Page 49: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Usando a Math.hÉ a principal biblioteca com funções matemáticas.

função Resultado sin(x) seno cos(x) co-senopow(x,y) x^ysqrt(x) Raiz quadradaabs(x) Módulo | x |ceil(x) Tetofloor(x) piso

Page 50: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415int main(){ double grau; printf("Entre com o grau:"); scanf("%lf",&grau); printf("seno(%4.2lf)=%4.2lf\n" , grau ,

sin( (grau/180)*PI ) ); printf("Co-seno(%4.2lf)=%4.2lf\n", grau ,

cos( (grau/180)*PI ) ); printf("2^3 = %.0lf\n" , pow(2,3)); printf("A raiz quadrada de 2 = %.4lf\n" , sqrt(2)); printf("O teto de 2.8 eh %.0lf\n", ceil(2.8) ); printf("O piso de 2.8 eh %.0lf\n", floor(2.8) ); system("PAUSE");}

Page 51: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415int main(){ double r; printf("Entre com o raio:"); scanf("%lf",&r); printf("O comprimento eh %.2lf\n", 2*PI*r); printf("A area eh %.2lf\n", PI*pow(r,2)); system("PAUSE");}

Page 52: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <math.h>

int main(){ double a,b,c; printf("Entre com os catetos:"); scanf("%lf %lf",&b,&c); a = sqrt( pow(b,2) + pow(c,2) ); printf("hipotenusa: %.2lf\n",a); system("PAUSE");}

Page 53: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Desafio:

Fazer um programa que resolva umaequação do 2° grau!!

Page 54: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Manipulação de Strings

• gets• puts• strcpy• strcat• strcmp

Page 55: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

gets()

É utilizada para a leitura de dispositivopadrão até que o ENTER seja pressionado. int main(){ char str[80]; gets(str); printf(“%s”,str); }

Page 56: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

puts()

Escreve a string passada para ele nodispositivo padrão de saída e coloca \n nofinal. int main(){ char str[80]=“Teste”; puts(str); }

Page 57: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

strcpy()

strcpy(destino,origem) Copia a string origem para a string destino.int main(){ char str[80]; strcpy(str,"Wladimir"); printf("%s",str); system("PAUSE");}

Page 58: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

strcat() strcat(s1,s2) concatena as duas string. s1 = s1 + s2; int main(){ char str1[80],str2[80]; strcpy(str1,"O campeão eh "); strcpy(str2,“Seu Time"); strcat(str1,str2); printf("%s\n",str1); system("PAUSE");}

Page 59: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

strcmp() compara as duas strings. strcmp(s1,s2) <0 , s1 > s2 >0 , s1 < s2 ==0 , s1==s2int main(){ char str1[80],str2[80]; strcpy(str1,"z"); strcpy(str2,"bcd"); if(strcmp(str1,str2)< 0) printf("1\n"); else if( strcmp(str1,str2) > 0 )

printf("2\n"); else printf("igual"); system("PAUSE");}

Page 60: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

strlen()Função que retorna o tamanho da string.

int main(){ char str1[80]; scanf(“%s”,str1); printf(“O tamanho de %s eh %d”,str1,strlen(str1));

system("PAUSE");}

Page 61: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Desafio!!

1) Inverter uma string2) Verificar se uma string é um palíndromo.

Page 62: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char palavra[20],c; int i,t; scanf("%s",palavra); t = strlen(palavra); for(i=0;i<t/2;i++){ c = palavra[i]; palavra[i] = palavra[t-i-1]; palavra[t-i-1] = c; } printf("%s\n",palavra); system("PAUSE");}

Page 63: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char palavra[20],palindromo[20],c; int i,t; scanf("%s",palavra); strcpy(palindromo,palavra); t = strlen(palavra); for(i=0;i< t/2;i++){ c = palavra[i]; palavra[i] = palavra[t-i-1]; palavra[t-i-1] = c; } if( strcmp(palindromo,palavra)==0) printf("Palindromo\n"); system("PAUSE");}

Page 64: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char bin[20]; int n,i; scanf("%d",&n); for(i=0;n>0;i++){ bin[i] = '0' + n%2; n = n/2; } bin[i]='\0'; printf("%s\n",bin); system("PAUSE");}

Page 65: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Vetores

Geralmente um identificador estárelacionado somente a uma posição dememória e qualquer referência a ela significa acessarseu conteúdo de um pedaço de memória cujotamanho depende do seu tipo

Com esse tipo de dado podemosassociar um identificador a conjunto deelementos de um mesmo tipo.

Page 66: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

//Programa que calcula a média#include <stdio.h>#include <stdlib.h>

int main(){ float n1,n2,n3,n4,media; printf("Entre com a 1 nota"); scanf("%f",&n1); printf("Entre com a 2 nota"); scanf("%f",&n2); printf("Entre com a 3 nota"); scanf("%f",&n3); printf("Entre com a 4 nota"); scanf("%f",&n4); media = ( n1 + n2 + n3 + n4 )/4.0; printf("A media eh %.2f\n",media); system("PAUSE"); }

Page 67: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

//Programa que calcula a média#include <stdio.h>#include <stdlib.h>

int main(){ float n[4],media; int i; for(i=0;i<4;i++){ printf("Entre com a %d nota:",i+1); scanf("%f",&n[i]); } media = ( n[0] + n[1] + n[2] + n[3] )/4.0 printf("A media eh %.2f\n",media); system("PAUSE"); }

Page 68: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int main(){ int v[10],maior,menor;

for(i=0;i<10;i++){ scanf("%d",&v[i]); } maior = v[0]; menor = v[0]; for(i=1;i<10;i++){ if( v[i] > maior ) maior = v[i]; if( v[i] < menor ) menor = v[i]; } system("PAUSE"); }

Page 69: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int v[10],soma,n,i; float media; soma = 0 ; for(i=0;i<10;i++){ scanf("%d",&v[i]); soma += v[i]; } media = soma/10.; n = 0; for(i=0;i<10;i++){ if(v[i] > media ) n++; } printf("\n%f %d\n",media , n); system("PAUSE"); }

Page 70: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int v[100],n,i; char achou; scanf("%d",&n); if(n<=100){ for(i=0;i<n;i++){ scanf("%d",&v[i]); } scanf("%d",&x); achou = 0; for(i=0;i<n;i++){ if(x==v[i]){ achou = 1; break; } } } system("PAUSE"); }

Page 71: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Matrizes multidimensional

Sintaxe:tipo nome[tamanho][tamanho]...;Funciona como na matriz de uma dimensão(vetor), mas tem mais de um índice.int v[3][3];

Page 72: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>int main(){ int v[3][3]; int i,j,soma,l,soma_max; for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("v[%d][%d]:",i,j); scanf("%d",&v[i][j]); } } for(i=0;i<3;i++){ soma = 0; for(j=0;j<3;j++) soma += v[i][j]; if( soma > soma_max || i==0){ soma_max = soma; l = i; } } system("PAUSE");}

Page 73: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Funções:

É uma unidade autônoma de código deprograma que é desenhada para cumpriruma tarefa particular.É um subprograma.É um bloco de código que pode ser usadovárias vezes.

Page 74: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Funções sem retorno

Quando uma função não retorna valor paraa função que o ela é declarada como void.

Page 75: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

void mensagem(){ printf("Essa é uma mensagem\n"); printf("Isso é só um exemplo");}

int main(){ mensagem(); system("PAUSE");}

Page 76: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>void inverter(){ int i,t; char c; t = strlen(nome); for(i=0;i<t/2;i++){ c = str[i]; nome[i] = nome[t-i-1]; nome[t-i-1]=c; }}int main(){ char nome[20] = "Wladimir"; inverter(nome); printf("Novo nome %s\n",nome); system("PAUSE");}

Page 77: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>void mostraIdade(int atual,int nasc){ printf("Vc completou ou completara %d anos\n",atual-nasc);

}

int main(){ int anoAtual = 2005, anoNascimento = 1984;

mostraIdade(anoAtual,anoNascimento); system("PAUSE");}

Page 78: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Funções com retorno

Quando uma função retorna um valor para afunção que a chamou.Logo, o tipo de retorno deve ser declarado.

Page 79: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>int fat(int n){ int i,fat=1; for(i=1;i<=n;i++) fat *=i; return fat;}int main(){ int n; scanf("%d",&n) while( n > 0 ){ printf("O fatorial eh %d",fat(n)); scanf("%d",&n) } system("PAUSE");}

Page 80: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>#include <string.h>int ehprimo(int n){ int i; if(n%2==0 && n!=2 ) return 0; else{ for(i=3;i*i<=n;i+=2) if(n%i==0) return 0; return 1; }}int main(){ int n; scanf("%d",&n); while( n > 0 ){ if( ehprimo(n) ) printf("Primo\n"); else printf("Composto\n"); scanf("%d",&n); } system("PAUSE");}

Page 81: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Parâmetros Formais

Quando uma função utiliza argumentos,então ela deve declarar as variáveisque aceitaram os valores dos argumentos,sendo essas variáveis os parâmetrosformais.

Page 82: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Parâmetros Reais

Quando uma função utiliza argumentos,as variáveis que são passadas comoargumentos para a função são chamadasde parâmetros reais

Page 83: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Variáveis locais

As variáveis que são declaradas dentro deuma função são chamadas de locais.Narealidade toda variável declarada entre umbloco { } podem ser referenciadas apenasdentro deste bloco. Elas existem apenasdurante a execução do bloco de código noqual estão declaradas.

Page 84: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Variáveis Globais

São conhecidas por todo programa e podemser usadas em qualquer parte do código.Permanecem com seu valor durante todaexecução do programa. Deve serdeclarada fora de qualquer função e atémesmo antes da declaração da funçãomain.

Page 85: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

Chamada por valor

O valor de um argumento é copiado para oparâmetro formal da função,portanto asalterações no processamento não alteramas variáveis.Os parâmetros formais são variáveis locais.

Page 86: Treinamento - OBI Linguagem C Wladimir Araújo Tavares

#include <stdio.h>#include <stdlib.h>

int cont = 12;

void teste(int i){ i++; printf("%d\n",i);}

int main(){ printf("%d\n",cont); teste(cont); printf("%d\n",cont); system("PAUSE");}