SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Introdução à Linguagem C

      Prof. Rafael Coelho lima
clraffa_cursotecnico@hotmail.com

          3º Ano Tecnico




                                   1
Histórico da Linguagem C
• Criada por Denis Ritchie, na década de
  1970, para uso em um computador DEC
  PDP-11 em Unix
• BCPL     B   C    C++
• C++ é uma extensão da linguagem C
• O sistema Unix é escrito em C e C++




                                           2
Estrutura básica de um programa C
  diretivas para o pré-processador
  declaração de variáveis globais
  main ()
  {
      declaração de variáveis locais da função main
      comandos da função main
  }




                                                      3
Diretivas para o processador - Bibliotecas
 • Diretiva #include permite incluir uma
   biblioteca
 • Bibliotecas contêm funções pré-definidas,
   utilizadas nos programas
 • Exemplos

   #include <stdio.h>    Funções de entrada e saída
   #include <stdlib.h> Funções padrão
   #include <math.h>     Funções matemáticas
   #include <system.h> Funções do sistema
   #include <string.h> Funções de texto


                                                      4
O ambiente Dev-C++
• O Dev-C++ é um ambiente de
  desenvolvimento de programas em C e C++
  com editor, compilador, bibliotecas e
  debugger
• Pode ser baixado de
  http://www.bloodshed.net/devcpp.html
• Vamos criar apenas programas para
  console, na linguagem C




                                            5
Usando o Dev-C++
• Inicie o Dev-C++ pelo ícone ou pelo menu
• Crie um novo arquivo, com o comando File, New
  Source File
• Edite o programa da página seguinte




                                             6
Usando o Dev-C++ (3)
#include <stdio.h>
main()
{
  printf ("Alo mundo!");

    system("PAUSE");
}




                           7
Usando o Dev-C++ (4)
• Salve o programa com o nome exemplo.c.
  Para tanto, selecione o menu File, Save unit
  as
• Compile o programa com o comando
  Executar, Compilar ou com a tecla Ctrl-F9
• Se houver algum erro de sintaxe, aparece
  uma ou mais mensagens no rodapé da
  janela. Neste caso, corrija o programa e
  repita.
• Se não houver erros, execute o programa
  com o comando Executar, Executar ou com
  a tecla Ctrl-F10
                                                 8
Dicas
• Termine todas as linhas com ;
• Sempre salve o programa antes de compilar
• Sempre compile o programa antes de
  executar
• Quando ocorrer um erro de compilação, dê
  um duplo clique sobre a mensagem de erro
  para destacar o comando errado no
  programa
• Verifique também a linha anterior, que pode
  ser a responsável pelo erro, especialmente
  se faltar o ;
• Use comentários, iniciados por //
                                                9
Template


#include <stdio.h>
main()
{
  printf ("Alo mundo!");
  system("PAUSE");
}




                           10
Declarações
• Declaram as variáveis e seus tipos
• Os nomes das variáveis devem conter
  apenas letras, dígitos e o símbolo _
• Até 32 caracteres
• Os principais tipos são: int, float, double e
  char
• Exemplos
       int n;
       int quantidade_valores;
       float x, y, somaValores;
       char sexo;
       char nome[40];
  Java diferencia letras maiúsculas de minúsculas!
  int n, N;
  n é diferente de N!
                                                     11
Real: n1, n2, n3, media   #include <stdio.h>
                          main()
                          {
                             double n1, n2, n3, media;




                          system("PAUSE");
                          }
                                                  12
Comando de atribuição
• Atribui o valor da direita à variável da
  esquerda
• O valor pode ser uma constante, uma
  variável ou uma expressão
• Exemplos
      x = 4; --> lemos x recebe 4
      y = x + 2;
      y = y + 4;
      valor = 2.5;
      sexo = 'F'




                                             13
Entrada e Saída
• Função scanf
    scanf ("formatos", &var1, &var2,...)

 Exemplos:

    int i, j;
    float x;                     %d    inteiro
    char c;                      %f    float
    char* nome;
    scanf("%d", &i);
                                 %lf   double
    scanf("%d %f", &j, &x);      %c    char
    scanf("%c", &c);             %s    palavra
    scanf("%s", nome);




                                                 14
Real: n1, n2, n3, media   #include <stdio.h>
                          main()
                          {
                             double n1, n2, n3, media;
 ler n1 n2, n3
     n1,                    scanf ("%lf %lf %lf",&n1, &n2, &n3);
                             scanf ("%lf",&n1);
 ler n2                      scanf ("%lf",&n2);
 ler n3                      scanf ("%lf",&n3);




                          system("PAUSE");
                          }

                                                         15
Operadores Matemáticos
Operador Exemplo Comentário
+        x + y   Soma x e y

-        x – y   Subtrai y de x

*        x * y   Multiplica x e y

/        x / y   Divide x por y

%        x % y   Resto da divisão de x por y

++       x++     Incrementa em 1 o valor de x

--       x--     Decrementa em 1 o valor de x




                                                16
Real: n1, n2, n3, media   #include <stdio.h>
                          main()
                          {
                             double n1, n2, n3, media;
ler n1, n2, n3
    n1                      scanf ("%lf %lf %lf",&n1, &n2, &n3);
                             scanf ("%lf",&n1);
ler n2
media=(n1+n2+n3)/3           scanf ("%lf",&n2);
                            media=(n1+n2+n3)/3;
ler n3                       scanf ("%lf",&n3);




                          system("PAUSE");
                          }

                                                         17
Entrada e Saída
• Função printf
     printf ("formatos", var1, var2,...)

  Exemplos:

     int i, j;
     float x;                     %d       inteiro
     char c;                      %f       float
     char* nome;
     printf("%d", i);
                                  %lf      double
     printf("%d, %f", j, x);      %c       char
     printf("%c", c);             %s       palavra
     printf("%s", nome);




                                                     18
Real: n1, n2, n3, media   #include <stdio.h>
                          main()
                          {
                             double n1, n2, n3, media;
ler n1, n2, n3
    n1                        scanf ("%lf %lf %lf",&n1, &n2, &n3);
                               scanf ("%lf",&n1);
ler n2
media=(n1+n2+n3)/3             scanf ("%lf",&n2);
                              media=(n1+n2+n3)/3;
ler n3                         scanf ("%lf",&n3);
exibir media                  printf (“%lf”,media);

                              system("PAUSE");
                          }

                  Mãos à Obra!

                                                           19
#include <stdio.h>          #include <stdio.h>
#include <stdlib.h>         #include <stdlib.h>
main()                      main()
{                           {
   double n1, n2, n3,          double n1, n2, n3, media;
             media;
                              printf(“Digite 3 notas: ”);
    scanf ("%lf %lf %lf",     scanf ("%lf %lf %lf",&n1, &n2, &n3);
         &n1, &n2, &n3);
                              media=(n1+n2+n3)/3;
    media=(n1+n2+n3)/3;
                               printf (“A média é %0.2lf”,media);
    printf (“%lf”,media);
                             system("PAUSE");
    system("PAUSE");        }
}
                                                           20
Exercicio
1) Tendo como dados de entrada a altura de uma
  pessoa, construa um programa que calcule seu
  peso ideal, utilizando a seguinte fórmula:
   • peso ideal = (72.7*h) - 58




                                                 21
Exercicio
2) Tendo como dados de entrada a altura e o sexo
  de uma pessoa, construa um programa que
  calcule seu peso ideal, utilizando a seguinte
  fórmula:
   • para mulheres: (62.1 * h) - 44.7.
   • para homens: (72.7 * h) - 58;




                                                   22
Operadores de Atribuição
Operador Exemplo Comentário
=       x = y    Atribui o valor de y a x
+=      x += y   Equivale a x = x + y
-=      x -= y   Equivale a x = x – y
*=      x *= y   Equivale a x = x * y
/=      x /= y   Equivale a x = x / y
%=      x %= y   Equivale a x = x % y




                                            23
Funções Matemáticas
Função   Exemplo     Comentário
ceil     ceil(x)     Arredonda o número real para cima; ceil(3.2) é 4
cos      cos(x)      Cosseno de x (x em radianos)
exp      exp(x)      e elevado à potencia x
fabs     fabs(x)     Valor absoluto de x
floor    floor(x)    Arredonda o número deal para baixo; floor(3.2) é 3
log      log(x)      Logaritmo natural de x
log10    log10(x)    Logaritmo decimal de x
pow      pow(x, y)   Calcula x elevado à potência y
sin      sin(x)      Seno de x
sqrt     sqrt(x)     Raiz quadrada de x
tan      tan(x)      Tangente de x

               #include <math.h>
                                                                   24
Exercício
2) Construa um algoritmo que tendo como entrada dois pontos
   quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância
   entre eles.
A fórmula da distância é:

3) Construa um algoritmo que calcule a quantidade de latas de
    tinta necessárias e o custo para pintar tanques cilíndricos de
    combustível, onde são fornecidos a altura e o raio desse
    cilindro.
Sabendo que:
- a lata de tinta custa R$20,00
- cada lata contém 5 litros
- cada litro de tinta pinta 3 metros quadrados.
Sabendo que:
Área do cilindro=3,14*raio2 + 2*3,14*raio*altura
e que raio e altura são dados de entrada.
                                                                     25
Operadores Relacionais
Operador       Exemplo      Comentário
==             x == y       O conteúdo de x é igual ao de y
!=             x != y       O conteúdo de x é diferente do de y
<=             x <= y       O conteúdo de x é menor ou igual ao de y

>=             x >= y       O conteúdo de x é maior ou igual ao de y
<              x < y        O conteúdo de x é menor que o de y
>              x > y        O conteúdo de x é maior que o de y

    As expressões relacionais em C retornam um número negativo:
    • 1 se verdadeiro e;
    • 0 se falso.

                                                                 26
Operadores Lógicos
• && (E lógico): retorna verdadeiro se ambos os
  operandos são verdadeiros e falso nos demais casos.
  Exemplo: if( a>2 && b<3).


• || (OU lógico): retorna verdadeiro se um ou ambos os
  operandos são verdadeiros e falso se ambos são
  falsos.
  Exemplo: if( a>1 || b<2).


• ! (NÃO lógico): usada com apenas um operando.
  Retorna verdadeiro se o operando é falso e vice-versa.
  Exemplo: if( !var ).


                                                      27
Operadores Lógicos
Tabela E    Tabela OU   Tabela NÃO


VeV    V   V ou V   V   Não V   F


VeF    F   V ou F   V   Não V   F


FeV    F   F ou V   V


FeF    F   F ou F   F

                                     28
Estrutura condicional simples
• Comando if
   if (condição)         if (a<menor)
      comando;              menor=a;


   if (condição) {
                         if (a<menor) {
      comando1;              menor=a;
      comando2;              printf (“%d”, menor);
      comando3;          }
   }

                     em pseudo-código:
                        se (a<menor) entao menor=a;


                                                29
Estrutura condicional composta
• Comando if...else
   if (condição)
                    Executa o comando se a condição for
      comando;
                    qualquer coisa diferente de zero!
   else
      comando;
                      if (peso= =peso_ideal)
   if (condição) {        printf (“Vc está em forma!”);
      comando1;       else
      comando2;           printf (“Necessário fazer dieta!”);
   } else {
      comando3;
      comando4;
                   em pseudo-código:
                   se (peso= =peso_ideal)
   }
                        entao exibir “Vc está em forma!”
                        senao exibir “Necessário fazer dieta!”


                                                            30
Exercício
4) Dados os 3 valores A, B, C, verificar se eles podem
   ser os comprimentos dos lados de um triângulo e, se
   forem, verificar se compõem um triângulo equilátero,
   isósceles ou escaleno.
Informar se não compuseram nenhum triângulo.
• Triângulo: figura geométrica de 3 lados, onde cada
   um é menor do que a soma dos outros dois.
• Triângulo eqüilátero: Triângulo com 3 lados iguais.
• Triângulo isósceles: Triângulo com 2 lados iguais.
• Triângulo escaleno: Triângulo com todos os lados
   diferentes.



                                                      31
Exercício
5) Faça um programa que leia um número
  inteiro e mostre uma mensagem indicando se
  este número é par ou ímpar, e se é positivo
  ou negativo.
6) Explique porque está errado fazer if
  (num=10) ... O que irá acontecer?




                                            32
Estrutura de repetição
• Comando for
   for (var=valor inicial; condição; incremento)
      comando;

   for (var=valor inicial; condição; incremento)
   {
      comando1;
                         Exemplo:
      comando2           for (cont=3; cont<=11; cont++)
      comando3;              printf (“%d”,cont);
   }
                          Pseudo-código:
                                 Para CONT = 3 até 11
                                 repetir
                                     Mostrar CONT

                                                        33
Exercícios
7)Sendo h= 1 + ½ + 1/3 + ¼ + ... + 1/N, prepare um
  algoritmo para calcular o número h, sendo o número
  N fornecido pelo usuário.

8) Elabore um algoritmo que calcule N! (fatorial de
   N), sendo que o valor inteiro de N é fornecido pelo
   usuário. Sabendo que:
• N! = 1 x 2 x 3 x ... x (N-1) x N;
• 0! = 1, por definição.

9)Faca um programa que apresente na tela a tabela de
  conversão de graus Celsius para Fahrenheit, de -100
  C a 100 C. Use um incremento de 10 C.
• OBS: Farenheit = (9/5)*(Celsius) + 32
                                                         34
Exercícios
10)Escreva um programa que coloque os
  números de 1 a 100 na tela na ordem
  inversa (começando em 100 e
  terminando em 1).
11) Calcular e listar todos os múltiplos
  positivos do número 7 menores ou
  iguais a 100.




                                       35
Estrutura de repetição
• Comando while

   while (condição)      Exemplo:
      comando;           while (N != 0) {
                           scanf ("%d",&N);
                           if (N > MAIOR) MAIOR = N;
   while (condição) {
                         }
      comando1;
      comando2          Pseudo-código:
                        MAIOR = 0
      comando3;         N=1
   }                    Enquanto (N <> 0) repetir
                            Ler N
                            Se (N > MAIOR) então MAIOR = N
                        Mostrar MAIOR


                                                     36
Exercício
12 )Fulano tem 1,50 metro e cresce 2 centímetros por
  ano, enquanto Ciclano tem 1,10 e cresce tem 3
  centímetros por ano. Construa um programa que
  calcule e imprima quantos anos serão necessários
  para que Ciclano seja maior que Fulano.




                                                       37
Estrutura de repetição
• Comando do...while
   do {                      Exemplo:
                             cont=0;
      comando                do {
   } while (condição);          cont = cont + 1;
                                printf("%dn",cont);
                             } while (cont < 10);
   do {
      comando1;
                         Em pseudo-código:
      comando2           CONTADOR = 0
      comando3;          Repetir
                             CONTADOR = CONTADOR + 1
   } while (condição);       exibir CONTADOR
                         enquanto CONTADOR < 10




                                                       38
Exercício
13) Escreva um programa que peça ao usuário que
  digite três números inteiros, correspondentes a dia ,
  mês e ano. Teste os números recebidos, e em caso
  de haver algum inválido, repita a leitura até conseguir
  valores que estejam na faixa correta (dias entre 1 e
  31, mês entre 1 e 12 e ano entre 1900 e 2100).
  Verifique se o mês e o número de dias batem. Se
  estiver tudo certo imprima o número que aquele dia
  corresponde no ano. Comente seu programa.




                                                       39
Exercício
14) Faça um programa que leia números
  digitados pelo usuário até ele digitar -1
  (utilizando um laço while). No final, calcule a
  média dos números fornecidos.

15) Perguntar ao usuário quantos números
  deseja somar. Em seguida, ler estes N
  números e apresentar o valor da soma.
  (Fazer 3 versões deste programa: usando
  FOR, usando WHILE e usando DO...WHILE).



                                                    40
Vetores (array)
•   Trata-se de automatizar a declaração de um grande número de dados
    de um mesmo tipo simples. As variáveis assim declaradas se acessam
    através de um índice de tipo int.


•   Declaração:
     – int v[100];
     – primeira posição =0;
     – última posição=99;

•   Atribuição:
     – v [9] = 87;



•   Acessar um valor:
     – a = v[9];



                                                                    41
• int v[10];



0
               V[5]=10;
1
2              printf (“%d”,V[5]);
3
4
5   10
6
7
8
9




                                     42
Quando usar?

• Calcular a média da nota de 5 alunos e
  verificar quantos conseguiram nota acima
                        #include <stdio.h>
  da média:             main()
inteiro: cont, soma;          {
                               int contA=0;
real: media, num               double media, n1, n2, n3, n4, n5;
                               scanf ("%lf %lf %lf %lf %lf",
para cont=1 até 5 repetir               &n1, &n2, &n3, &n4, &n5);
        receber num            media = (n1+ n2 + n3 + n4 + n5)/5;
                               if (n1>media) contA=contA+1;
        soma = soma + num      if (n2>media) contA=contA+1;
media = soma/cont              if (n3>media) contA=contA+1;
                               if (n4>media) contA=contA+1;
Como verificar se a nota de    if (n5>media) contA=contA+1;
cada aluno é maior que a       printf ("%lf %d", media, contA);
média??                        system("pause");
                              }
                                                                43
#include <stdio.h>
#include <stdio.h>
                                      main()
main()
{                                     {
 int contA=0;                           int i, contA=0;
 double media, n1, n2, n3, n4, n5;      double soma=0, media;
 scanf ("%lf %lf %lf %lf %lf",          double v[5];
          &n1, &n2, &n3, &n4, &n5);
 media = (n1+ n2 + n3 + n4 + n5)/5;       for (i=0;i<5;i++) {
 if (n1>media) contA=contA+1;               scanf ("%lf", &v[i]);
 if (n2>media) contA=contA+1;               soma = soma + v[i];
 if (n3>media) contA=contA+1;             }
 if (n4>media) contA=contA+1;             media = soma/i;
 if (n5>media) contA=contA+1;             for (i=0;i<5;i++) {
 printf ("%lf %d", media, contA);            if (v[i]>media) contA=contA+1;
 system("pause");
                                          }
}
                                          printf ("%lf %dn", media, contA);
                                          system("PAUSE");
                                      }

                                                                               44
Exercícios
16) Dada duas seqüências de 5 números, calcule a
  soma de cada número com o seu correspondente.
17) Ler 5 números, armazenando-os no vetor X[5].
  Calcular a soma destes 5 números e mostrá-la na
  tela.
18) Ler 5 números, armazenando-os no vetor X[5].
  Copiar este vetor, de trás para frente (na ordem
  inversa de leitura), em um segundo vetor Y[5].
  Mostrar o vetor Y.
19) Gerar um vetor com 10 números da seguinte forma:
  cada número guardado no vetor será o valor da sua
  própria posição no vetor (seu índice) menos 2 (ou
  seja, Xi = i-2). Mostrar na tela este vetor.

                                                  45
Strings
• Não existe um tipo String em C.
• Strings em C são uma array do tipo char que termina
  com „0‟.
• Para literais String, o próprio compilador coloca „0‟.


#include <stdio.h>
main(){
   char re[] = "lagarto";
   printf ("%s", re);
   system("pause");
}

                                                            46
Para ler uma String
• Comando gets

#include <stdio.h>
main(){
   char re [80];
   printf ("Digite o seu nome: ");
   gets(re);
   printf ("Oi %sn", re);
   system("pause");
}



                                     47
Para comparar duas strings
•   strcmp (s1, s2);   strcmp retorna 0 se as duas strings são iguais.
• Precisa do #include <string.h>
#include <stdio.h>
#include <string.h>                 Pode utilizar scanf no lugar do gets, só que o
main( ){                            scanf não lê espaços em branco.
   char re[80];                     Se o usuário digitar:
                                    >“Alexandre Costa e Silva”
   printf ("Digite a senha: ");
                                    o scanf vai pegar apenas “Alexandre”.
   scanf ("%s", &re);               O gets pega tudo.
   if (strcmp(re,"laranja")==0) {
       printf ("Senha corretan");
   }
   else {
       printf ("Senha invalidan");
   }
   system("pause");
}

                                                                             48
Para saber o tamanho de uma string
• int size = strlen(str);
    – Retorna um valor inteiro com o número de caracteres da
      String.

    – Precisa do #include <string.h>
#include <stdio.h>
#include <string.h>
main(){
   char re[80];
   printf ("Digite a palavra: ");
   scanf ("%s", &re);
   int size=strlen(re);
   printf ("Esta palavra tem %d caracteres.n", size);
   system("pause");
}


                                                          49
Para copiar o conteúdo de uma string para outra

 • strcpy(para, de);
 • Precisa do #include <string.h>



 #include <stdio.h>
 #include <string.h>
 main()
 {
  char str[80];
  strcpy (str, "Alo");
  printf ("%s", str);
  system("pause");
 }
                                            50
Exercícios
20) Escreva um programa que leia duas strings e as
  coloque na tela. Imprima também a segunda letra de
  cada string.
21) Escreva um programa que leia uma string, conte
  quantos caracteres desta string são iguais a 'a' e
  substitua os que forem iguais a 'a' por 'b'. O
  programa deve imprimir o número de caracteres
  modificados e a string modificada.
22) Faça um programa que verifique se uma palavra é
  simétrica. Por exemplo: “arara” é uma palavra
  simétrica. Podemos lê-la normalmente ou de trás
  para a frente e sempre obteremos a mesma palavra.



                                                   51
Funções
• São estruturas que permitem ao programador
  separar o código do seu programa em blocos.
• Uma função tem a seguinte forma :


tipo_de_retorno Nome_da_funcao (parâmetros){
  /*corpo da função */
}




                                            52
Funções que não retornam valor :
#include <stdio.h>
void ehPar (int x){
   if (x % 2) {
       printf ("O numero nao eh par!n");
   }
   else {
       printf ("O numero eh par!n");
   }
}
int main(){
   char re[80];
   ehPar (3);
   system("pause");
   return (0);
}
                                            53
Funções que retornam valor
#include <stdio.h>
int ehPar (int x){
   int z = 0;
/* o operador % retorna o resultado da divisão por 2 */
   if (x % 2) return 1;
}
int main(){
   char re[80];
   int i = ehPar (3);
   if (i!=0){
       printf ("O numero eh par!");
   }
   system("pause");
   return (0);
}
                                                          54
Exercícios
23) Construa um programa que tenha uma função que
  verifica se um número inteiro, passado como
  parâmetro, e exiba na tela se o número é negativo ou
  positivo.

24) Elabore um programa que tenha uma função que
  retorne o reverso de um número inteiro. Por
  exemplo, 932-> 239.




                                                    55
Exercício
25) Construa um programa que possua uma função
   que dado um número de conta corrente com cinco
   dígitos, retorne o seu dígito verificador, o qual é
   calculado da seguinte maneira:
Exemplo: número da conta: 25678
a) somar número da conta com seu inverso:
   25678+87652=113330
b) multiplicar cada dígito pela sua ordem posicional e
   somar este resultado: 1 1 3 3 3 0
        1 1 3 3 3 0
        0 1 2 3 4 5
        1 1 6 9 12 0 = 29


                                                         56

Contenu connexe

Tendances

Tendances (19)

Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Pilha em C
Pilha em CPilha em C
Pilha em C
 
Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Light Talk sobre JavaScript Funcional
Light Talk sobre JavaScript FuncionalLight Talk sobre JavaScript Funcional
Light Talk sobre JavaScript Funcional
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 
Aula17
Aula17Aula17
Aula17
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
 

En vedette

Comandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpComandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpAna Ruth G H
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesRegis Magalhães
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch caseAlessandra Sra JM
 
Fundamentos da programação de computadores 1ª edição
Fundamentos da programação de computadores   1ª ediçãoFundamentos da programação de computadores   1ª edição
Fundamentos da programação de computadores 1ª ediçãoLeandro Rocha de Oliveira
 
Fundamentos da programação de computadores 2ª edição
Fundamentos da programação de computadores   2ª ediçãoFundamentos da programação de computadores   2ª edição
Fundamentos da programação de computadores 2ª ediçãoLeandro Rocha de Oliveira
 

En vedette (6)

Comandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpComandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# Sharp
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch case
 
Fundamentos da programação de computadores 1ª edição
Fundamentos da programação de computadores   1ª ediçãoFundamentos da programação de computadores   1ª edição
Fundamentos da programação de computadores 1ª edição
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Fundamentos da programação de computadores 2ª edição
Fundamentos da programação de computadores   2ª ediçãoFundamentos da programação de computadores   2ª edição
Fundamentos da programação de computadores 2ª edição
 

Similaire à Introdução à linguagem c

Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçaossuserc6132d
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5engenhariadecomputacao
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfvictorlopes714651
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05profwtelles
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1Duane Bertoldo
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Palestra python
Palestra pythonPalestra python
Palestra pythonRony Cruch
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CRodrigo Kiyoshi Saito
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivosFlávio Freitas
 
Algoritmos em c #1
Algoritmos em c #1Algoritmos em c #1
Algoritmos em c #1Stark2009
 

Similaire à Introdução à linguagem c (20)

Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5Algoritmo e lógica de programação - aula 5
Algoritmo e lógica de programação - aula 5
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Palestra python
Palestra pythonPalestra python
Palestra python
 
Calculadora
CalculadoraCalculadora
Calculadora
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Algoritmos em c #1
Algoritmos em c #1Algoritmos em c #1
Algoritmos em c #1
 

Introdução à linguagem c

  • 1. Introdução à Linguagem C Prof. Rafael Coelho lima clraffa_cursotecnico@hotmail.com 3º Ano Tecnico 1
  • 2. Histórico da Linguagem C • Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix • BCPL B C C++ • C++ é uma extensão da linguagem C • O sistema Unix é escrito em C e C++ 2
  • 3. Estrutura básica de um programa C diretivas para o pré-processador declaração de variáveis globais main () { declaração de variáveis locais da função main comandos da função main } 3
  • 4. Diretivas para o processador - Bibliotecas • Diretiva #include permite incluir uma biblioteca • Bibliotecas contêm funções pré-definidas, utilizadas nos programas • Exemplos #include <stdio.h> Funções de entrada e saída #include <stdlib.h> Funções padrão #include <math.h> Funções matemáticas #include <system.h> Funções do sistema #include <string.h> Funções de texto 4
  • 5. O ambiente Dev-C++ • O Dev-C++ é um ambiente de desenvolvimento de programas em C e C++ com editor, compilador, bibliotecas e debugger • Pode ser baixado de http://www.bloodshed.net/devcpp.html • Vamos criar apenas programas para console, na linguagem C 5
  • 6. Usando o Dev-C++ • Inicie o Dev-C++ pelo ícone ou pelo menu • Crie um novo arquivo, com o comando File, New Source File • Edite o programa da página seguinte 6
  • 7. Usando o Dev-C++ (3) #include <stdio.h> main() { printf ("Alo mundo!"); system("PAUSE"); } 7
  • 8. Usando o Dev-C++ (4) • Salve o programa com o nome exemplo.c. Para tanto, selecione o menu File, Save unit as • Compile o programa com o comando Executar, Compilar ou com a tecla Ctrl-F9 • Se houver algum erro de sintaxe, aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita. • Se não houver erros, execute o programa com o comando Executar, Executar ou com a tecla Ctrl-F10 8
  • 9. Dicas • Termine todas as linhas com ; • Sempre salve o programa antes de compilar • Sempre compile o programa antes de executar • Quando ocorrer um erro de compilação, dê um duplo clique sobre a mensagem de erro para destacar o comando errado no programa • Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ; • Use comentários, iniciados por // 9
  • 10. Template #include <stdio.h> main() { printf ("Alo mundo!"); system("PAUSE"); } 10
  • 11. Declarações • Declaram as variáveis e seus tipos • Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ • Até 32 caracteres • Os principais tipos são: int, float, double e char • Exemplos int n; int quantidade_valores; float x, y, somaValores; char sexo; char nome[40]; Java diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N! 11
  • 12. Real: n1, n2, n3, media #include <stdio.h> main() { double n1, n2, n3, media; system("PAUSE"); } 12
  • 13. Comando de atribuição • Atribui o valor da direita à variável da esquerda • O valor pode ser uma constante, uma variável ou uma expressão • Exemplos x = 4; --> lemos x recebe 4 y = x + 2; y = y + 4; valor = 2.5; sexo = 'F' 13
  • 14. Entrada e Saída • Função scanf scanf ("formatos", &var1, &var2,...) Exemplos: int i, j; float x; %d inteiro char c; %f float char* nome; scanf("%d", &i); %lf double scanf("%d %f", &j, &x); %c char scanf("%c", &c); %s palavra scanf("%s", nome); 14
  • 15. Real: n1, n2, n3, media #include <stdio.h> main() { double n1, n2, n3, media; ler n1 n2, n3 n1, scanf ("%lf %lf %lf",&n1, &n2, &n3); scanf ("%lf",&n1); ler n2 scanf ("%lf",&n2); ler n3 scanf ("%lf",&n3); system("PAUSE"); } 15
  • 16. Operadores Matemáticos Operador Exemplo Comentário + x + y Soma x e y - x – y Subtrai y de x * x * y Multiplica x e y / x / y Divide x por y % x % y Resto da divisão de x por y ++ x++ Incrementa em 1 o valor de x -- x-- Decrementa em 1 o valor de x 16
  • 17. Real: n1, n2, n3, media #include <stdio.h> main() { double n1, n2, n3, media; ler n1, n2, n3 n1 scanf ("%lf %lf %lf",&n1, &n2, &n3); scanf ("%lf",&n1); ler n2 media=(n1+n2+n3)/3 scanf ("%lf",&n2); media=(n1+n2+n3)/3; ler n3 scanf ("%lf",&n3); system("PAUSE"); } 17
  • 18. Entrada e Saída • Função printf printf ("formatos", var1, var2,...) Exemplos: int i, j; float x; %d inteiro char c; %f float char* nome; printf("%d", i); %lf double printf("%d, %f", j, x); %c char printf("%c", c); %s palavra printf("%s", nome); 18
  • 19. Real: n1, n2, n3, media #include <stdio.h> main() { double n1, n2, n3, media; ler n1, n2, n3 n1 scanf ("%lf %lf %lf",&n1, &n2, &n3); scanf ("%lf",&n1); ler n2 media=(n1+n2+n3)/3 scanf ("%lf",&n2); media=(n1+n2+n3)/3; ler n3 scanf ("%lf",&n3); exibir media printf (“%lf”,media); system("PAUSE"); } Mãos à Obra! 19
  • 20. #include <stdio.h> #include <stdio.h> #include <stdlib.h> #include <stdlib.h> main() main() { { double n1, n2, n3, double n1, n2, n3, media; media; printf(“Digite 3 notas: ”); scanf ("%lf %lf %lf", scanf ("%lf %lf %lf",&n1, &n2, &n3); &n1, &n2, &n3); media=(n1+n2+n3)/3; media=(n1+n2+n3)/3; printf (“A média é %0.2lf”,media); printf (“%lf”,media); system("PAUSE"); system("PAUSE"); } } 20
  • 21. Exercicio 1) Tendo como dados de entrada a altura de uma pessoa, construa um programa que calcule seu peso ideal, utilizando a seguinte fórmula: • peso ideal = (72.7*h) - 58 21
  • 22. Exercicio 2) Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um programa que calcule seu peso ideal, utilizando a seguinte fórmula: • para mulheres: (62.1 * h) - 44.7. • para homens: (72.7 * h) - 58; 22
  • 23. Operadores de Atribuição Operador Exemplo Comentário = x = y Atribui o valor de y a x += x += y Equivale a x = x + y -= x -= y Equivale a x = x – y *= x *= y Equivale a x = x * y /= x /= y Equivale a x = x / y %= x %= y Equivale a x = x % y 23
  • 24. Funções Matemáticas Função Exemplo Comentário ceil ceil(x) Arredonda o número real para cima; ceil(3.2) é 4 cos cos(x) Cosseno de x (x em radianos) exp exp(x) e elevado à potencia x fabs fabs(x) Valor absoluto de x floor floor(x) Arredonda o número deal para baixo; floor(3.2) é 3 log log(x) Logaritmo natural de x log10 log10(x) Logaritmo decimal de x pow pow(x, y) Calcula x elevado à potência y sin sin(x) Seno de x sqrt sqrt(x) Raiz quadrada de x tan tan(x) Tangente de x #include <math.h> 24
  • 25. Exercício 2) Construa um algoritmo que tendo como entrada dois pontos quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre eles. A fórmula da distância é: 3) Construa um algoritmo que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse cilindro. Sabendo que: - a lata de tinta custa R$20,00 - cada lata contém 5 litros - cada litro de tinta pinta 3 metros quadrados. Sabendo que: Área do cilindro=3,14*raio2 + 2*3,14*raio*altura e que raio e altura são dados de entrada. 25
  • 26. Operadores Relacionais Operador Exemplo Comentário == x == y O conteúdo de x é igual ao de y != x != y O conteúdo de x é diferente do de y <= x <= y O conteúdo de x é menor ou igual ao de y >= x >= y O conteúdo de x é maior ou igual ao de y < x < y O conteúdo de x é menor que o de y > x > y O conteúdo de x é maior que o de y As expressões relacionais em C retornam um número negativo: • 1 se verdadeiro e; • 0 se falso. 26
  • 27. Operadores Lógicos • && (E lógico): retorna verdadeiro se ambos os operandos são verdadeiros e falso nos demais casos. Exemplo: if( a>2 && b<3). • || (OU lógico): retorna verdadeiro se um ou ambos os operandos são verdadeiros e falso se ambos são falsos. Exemplo: if( a>1 || b<2). • ! (NÃO lógico): usada com apenas um operando. Retorna verdadeiro se o operando é falso e vice-versa. Exemplo: if( !var ). 27
  • 28. Operadores Lógicos Tabela E Tabela OU Tabela NÃO VeV V V ou V V Não V F VeF F V ou F V Não V F FeV F F ou V V FeF F F ou F F 28
  • 29. Estrutura condicional simples • Comando if if (condição) if (a<menor) comando; menor=a; if (condição) { if (a<menor) { comando1; menor=a; comando2; printf (“%d”, menor); comando3; } } em pseudo-código: se (a<menor) entao menor=a; 29
  • 30. Estrutura condicional composta • Comando if...else if (condição) Executa o comando se a condição for comando; qualquer coisa diferente de zero! else comando; if (peso= =peso_ideal) if (condição) { printf (“Vc está em forma!”); comando1; else comando2; printf (“Necessário fazer dieta!”); } else { comando3; comando4; em pseudo-código: se (peso= =peso_ideal) } entao exibir “Vc está em forma!” senao exibir “Necessário fazer dieta!” 30
  • 31. Exercício 4) Dados os 3 valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verificar se compõem um triângulo equilátero, isósceles ou escaleno. Informar se não compuseram nenhum triângulo. • Triângulo: figura geométrica de 3 lados, onde cada um é menor do que a soma dos outros dois. • Triângulo eqüilátero: Triângulo com 3 lados iguais. • Triângulo isósceles: Triângulo com 2 lados iguais. • Triângulo escaleno: Triângulo com todos os lados diferentes. 31
  • 32. Exercício 5) Faça um programa que leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo. 6) Explique porque está errado fazer if (num=10) ... O que irá acontecer? 32
  • 33. Estrutura de repetição • Comando for for (var=valor inicial; condição; incremento) comando; for (var=valor inicial; condição; incremento) { comando1; Exemplo: comando2 for (cont=3; cont<=11; cont++) comando3; printf (“%d”,cont); } Pseudo-código: Para CONT = 3 até 11 repetir Mostrar CONT 33
  • 34. Exercícios 7)Sendo h= 1 + ½ + 1/3 + ¼ + ... + 1/N, prepare um algoritmo para calcular o número h, sendo o número N fornecido pelo usuário. 8) Elabore um algoritmo que calcule N! (fatorial de N), sendo que o valor inteiro de N é fornecido pelo usuário. Sabendo que: • N! = 1 x 2 x 3 x ... x (N-1) x N; • 0! = 1, por definição. 9)Faca um programa que apresente na tela a tabela de conversão de graus Celsius para Fahrenheit, de -100 C a 100 C. Use um incremento de 10 C. • OBS: Farenheit = (9/5)*(Celsius) + 32 34
  • 35. Exercícios 10)Escreva um programa que coloque os números de 1 a 100 na tela na ordem inversa (começando em 100 e terminando em 1). 11) Calcular e listar todos os múltiplos positivos do número 7 menores ou iguais a 100. 35
  • 36. Estrutura de repetição • Comando while while (condição) Exemplo: comando; while (N != 0) { scanf ("%d",&N); if (N > MAIOR) MAIOR = N; while (condição) { } comando1; comando2 Pseudo-código: MAIOR = 0 comando3; N=1 } Enquanto (N <> 0) repetir Ler N Se (N > MAIOR) então MAIOR = N Mostrar MAIOR 36
  • 37. Exercício 12 )Fulano tem 1,50 metro e cresce 2 centímetros por ano, enquanto Ciclano tem 1,10 e cresce tem 3 centímetros por ano. Construa um programa que calcule e imprima quantos anos serão necessários para que Ciclano seja maior que Fulano. 37
  • 38. Estrutura de repetição • Comando do...while do { Exemplo: cont=0; comando do { } while (condição); cont = cont + 1; printf("%dn",cont); } while (cont < 10); do { comando1; Em pseudo-código: comando2 CONTADOR = 0 comando3; Repetir CONTADOR = CONTADOR + 1 } while (condição); exibir CONTADOR enquanto CONTADOR < 10 38
  • 39. Exercício 13) Escreva um programa que peça ao usuário que digite três números inteiros, correspondentes a dia , mês e ano. Teste os números recebidos, e em caso de haver algum inválido, repita a leitura até conseguir valores que estejam na faixa correta (dias entre 1 e 31, mês entre 1 e 12 e ano entre 1900 e 2100). Verifique se o mês e o número de dias batem. Se estiver tudo certo imprima o número que aquele dia corresponde no ano. Comente seu programa. 39
  • 40. Exercício 14) Faça um programa que leia números digitados pelo usuário até ele digitar -1 (utilizando um laço while). No final, calcule a média dos números fornecidos. 15) Perguntar ao usuário quantos números deseja somar. Em seguida, ler estes N números e apresentar o valor da soma. (Fazer 3 versões deste programa: usando FOR, usando WHILE e usando DO...WHILE). 40
  • 41. Vetores (array) • Trata-se de automatizar a declaração de um grande número de dados de um mesmo tipo simples. As variáveis assim declaradas se acessam através de um índice de tipo int. • Declaração: – int v[100]; – primeira posição =0; – última posição=99; • Atribuição: – v [9] = 87; • Acessar um valor: – a = v[9]; 41
  • 42. • int v[10]; 0 V[5]=10; 1 2 printf (“%d”,V[5]); 3 4 5 10 6 7 8 9 42
  • 43. Quando usar? • Calcular a média da nota de 5 alunos e verificar quantos conseguiram nota acima #include <stdio.h> da média: main() inteiro: cont, soma; { int contA=0; real: media, num double media, n1, n2, n3, n4, n5; scanf ("%lf %lf %lf %lf %lf", para cont=1 até 5 repetir &n1, &n2, &n3, &n4, &n5); receber num media = (n1+ n2 + n3 + n4 + n5)/5; if (n1>media) contA=contA+1; soma = soma + num if (n2>media) contA=contA+1; media = soma/cont if (n3>media) contA=contA+1; if (n4>media) contA=contA+1; Como verificar se a nota de if (n5>media) contA=contA+1; cada aluno é maior que a printf ("%lf %d", media, contA); média?? system("pause"); } 43
  • 44. #include <stdio.h> #include <stdio.h> main() main() { { int contA=0; int i, contA=0; double media, n1, n2, n3, n4, n5; double soma=0, media; scanf ("%lf %lf %lf %lf %lf", double v[5]; &n1, &n2, &n3, &n4, &n5); media = (n1+ n2 + n3 + n4 + n5)/5; for (i=0;i<5;i++) { if (n1>media) contA=contA+1; scanf ("%lf", &v[i]); if (n2>media) contA=contA+1; soma = soma + v[i]; if (n3>media) contA=contA+1; } if (n4>media) contA=contA+1; media = soma/i; if (n5>media) contA=contA+1; for (i=0;i<5;i++) { printf ("%lf %d", media, contA); if (v[i]>media) contA=contA+1; system("pause"); } } printf ("%lf %dn", media, contA); system("PAUSE"); } 44
  • 45. Exercícios 16) Dada duas seqüências de 5 números, calcule a soma de cada número com o seu correspondente. 17) Ler 5 números, armazenando-os no vetor X[5]. Calcular a soma destes 5 números e mostrá-la na tela. 18) Ler 5 números, armazenando-os no vetor X[5]. Copiar este vetor, de trás para frente (na ordem inversa de leitura), em um segundo vetor Y[5]. Mostrar o vetor Y. 19) Gerar um vetor com 10 números da seguinte forma: cada número guardado no vetor será o valor da sua própria posição no vetor (seu índice) menos 2 (ou seja, Xi = i-2). Mostrar na tela este vetor. 45
  • 46. Strings • Não existe um tipo String em C. • Strings em C são uma array do tipo char que termina com „0‟. • Para literais String, o próprio compilador coloca „0‟. #include <stdio.h> main(){ char re[] = "lagarto"; printf ("%s", re); system("pause"); } 46
  • 47. Para ler uma String • Comando gets #include <stdio.h> main(){ char re [80]; printf ("Digite o seu nome: "); gets(re); printf ("Oi %sn", re); system("pause"); } 47
  • 48. Para comparar duas strings • strcmp (s1, s2); strcmp retorna 0 se as duas strings são iguais. • Precisa do #include <string.h> #include <stdio.h> #include <string.h> Pode utilizar scanf no lugar do gets, só que o main( ){ scanf não lê espaços em branco. char re[80]; Se o usuário digitar: >“Alexandre Costa e Silva” printf ("Digite a senha: "); o scanf vai pegar apenas “Alexandre”. scanf ("%s", &re); O gets pega tudo. if (strcmp(re,"laranja")==0) { printf ("Senha corretan"); } else { printf ("Senha invalidan"); } system("pause"); } 48
  • 49. Para saber o tamanho de uma string • int size = strlen(str); – Retorna um valor inteiro com o número de caracteres da String. – Precisa do #include <string.h> #include <stdio.h> #include <string.h> main(){ char re[80]; printf ("Digite a palavra: "); scanf ("%s", &re); int size=strlen(re); printf ("Esta palavra tem %d caracteres.n", size); system("pause"); } 49
  • 50. Para copiar o conteúdo de uma string para outra • strcpy(para, de); • Precisa do #include <string.h> #include <stdio.h> #include <string.h> main() { char str[80]; strcpy (str, "Alo"); printf ("%s", str); system("pause"); } 50
  • 51. Exercícios 20) Escreva um programa que leia duas strings e as coloque na tela. Imprima também a segunda letra de cada string. 21) Escreva um programa que leia uma string, conte quantos caracteres desta string são iguais a 'a' e substitua os que forem iguais a 'a' por 'b'. O programa deve imprimir o número de caracteres modificados e a string modificada. 22) Faça um programa que verifique se uma palavra é simétrica. Por exemplo: “arara” é uma palavra simétrica. Podemos lê-la normalmente ou de trás para a frente e sempre obteremos a mesma palavra. 51
  • 52. Funções • São estruturas que permitem ao programador separar o código do seu programa em blocos. • Uma função tem a seguinte forma : tipo_de_retorno Nome_da_funcao (parâmetros){ /*corpo da função */ } 52
  • 53. Funções que não retornam valor : #include <stdio.h> void ehPar (int x){ if (x % 2) { printf ("O numero nao eh par!n"); } else { printf ("O numero eh par!n"); } } int main(){ char re[80]; ehPar (3); system("pause"); return (0); } 53
  • 54. Funções que retornam valor #include <stdio.h> int ehPar (int x){ int z = 0; /* o operador % retorna o resultado da divisão por 2 */ if (x % 2) return 1; } int main(){ char re[80]; int i = ehPar (3); if (i!=0){ printf ("O numero eh par!"); } system("pause"); return (0); } 54
  • 55. Exercícios 23) Construa um programa que tenha uma função que verifica se um número inteiro, passado como parâmetro, e exiba na tela se o número é negativo ou positivo. 24) Elabore um programa que tenha uma função que retorne o reverso de um número inteiro. Por exemplo, 932-> 239. 55
  • 56. Exercício 25) Construa um programa que possua uma função que dado um número de conta corrente com cinco dígitos, retorne o seu dígito verificador, o qual é calculado da seguinte maneira: Exemplo: número da conta: 25678 a) somar número da conta com seu inverso: 25678+87652=113330 b) multiplicar cada dígito pela sua ordem posicional e somar este resultado: 1 1 3 3 3 0 1 1 3 3 3 0 0 1 2 3 4 5 1 1 6 9 12 0 = 29 56