SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Programação de
Computadores
Aula 2
09/08/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 2: Comandos de Controle de Programa
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coraçã – USC
Bauru/SP
Termos Importantes
• Código-fonte: é o texto de um programa que um usário pode
  ler. É a entrada para o compilador C.
• Código-Objeto: é a tradução do código-fonte de um programa
  em código de máquina. É a entrada para o linkeditor.
• Linkeditor: é um programa que combina as funções da
  biblioteca C padrão com o código-fonte que você escreveu
  gerando um executável.
• Biblioteca: é um arquivo contendo as funções padrão que
  podem ser utilizadas pelo seu programa.
• Tempo de compilação: são os eventos que ocorrem enquanto
  o seu programa está sendo compilado. Um erro de sintaxe é
  uma ocorrência em tempo de compilação.                       2
• Tempo de execução: são os eventos que ocorrem enquanto o
  seu programa está sendo executado.
Variáveis
• Variáveis locais: uma variável local é aquela que é declarada
  dentro de uma função e só pode ser utilizada naquele “local”
  do seu código-fonte.
• Variáveis globais: uma variável global é aquela que é
  declarada fora de funções e podem ser utilizadas por qualquer
  “parte” do seu código-fonte. Uma variável global guarda o
  valor armazenado por ela, durante toda a execução do
  programa.




                                                                  3
Modificadores de tipo de acesso
• const: é uma variável que não pode ser modificada, possui um
  valor fixado.
• volatile: uma variável desse tipo pode ser alterada de maneira
  não explicitamente especificada no programa. Exemplo: hora
  e data do sistema. A variável que armazena o valor do sistema
  é alterada pelo sistema operacional e não por você.




                                                                   4
Especificadores de tipo de classe de
armazenamento
• Variáveis globais static: funcionam como variáveis globais
  dentro de um módulo. São variáveis globais que não são e,
  nem podem ser, conhecidas em outros módulos. Isto é útil
  quando queremos isolar pedaços de um programa para evitar
  mudanças acidentais em variáveis globais.
• Variáveis locais static: são variáveis cujo valor é mantido de
  uma chamada da função para a outra.




                                                                   5
Especificadores de tipo de classe de
armazenamento
• extern: define variáveis que serão usadas em um arquivo
  apesar de terem sido declaradas em outro. Podemos ter
  programas de milhares de linhas. Estes podem ser divididos
  em vários arquivos (módulos) que serão compilados
  separadamente. Digamos que para um programa grande
  tenhamos duas variáveis globais e estas variáveis são
  declaradas normalmente em um dos arquivos (módulos) do
  programa. Num outro arquivo (módulo) do programa temos
  uma rotina que deve usar as variáveis globais. Então nesse
  caso devemos usar extern para que esses módulos possam
  encontrar as variáveis.

                                                               6
Especificadores de tipo de classe de
armazenamento
    Arquivo 1 (módulo 1)      Arquivo 2 (módulo 2)
int x, y;                  extern int x, y;
char ch;                   extern char ch;
main(void) {               funcao_2(void) {
.                                x = y/10;
.                          }
.                          funcao_3( ) {
}                                y = 10;
funcao_1( ) {              }
  x = 123;                                           7

}
Especificadores de tipo de classe de
armazenamento
• register: o computador tem a memória principal e os
  registradores da CPU. As variáveis e o programa são
  armazenados na memória. Register diz ao compilador que a
  variável em questão deve ser armazenada em um registrador
  da CPU ao invés de uma posição da memória. Usado apenas
  para variáveis locais e parâmetros formais de uma função.




                                                              8
Parâmetros formais
• Normalmente uma função utiliza argumentos que, na verdade
  são variáveis. Essas variáveis são utilizadas dentro da função e
  são passadas como parâmetros para a função.
funcao(argumentos ou parâmetros formais) { }
exemplo:
int contador( numero ) {
   numero = numero + 1;
   return 0;
}


                                                                     9
Código de formatação da
função scanf()
Código Função                        Exemplo
%c     Ler um único caracter         scanf(“%c”, ‘a’);
%d     Ler um inteiro decimal        scanf(“%d”, 20);
%e     Ler um número em notação      scanf(“%e”, &num);
       científica
%f     Ler um número em ponto        scanf(“%f”, 25.6);
       flutuante
%o     Ler um inteiro octal          scanf(“%o”, 012);
%s     Ler uma série de caracteres   scanf(“%s”, ‘abcdeteste’);
%x     Ler um número hexadecimal     scanf(“%x”, 0x80);
%u     Ler um decimal sem sinal      scanf(“%u”, &num);
                                                                  10
%l     Ler um inteiro long           scanf(“%l”, &num);
Operador de endereço (&)
• A memória do seu computador é dividida em bytes
• Estes bytes são numerados de 0 até o limite da memória da
  sua máquina.
• Estes números são chamados de endereços de bytes.
• Um endereçoo e o nome que o computador usa para
  identificar a variável.
• Toda variável ocupa uma certa localização na memória.
• Seu endereço é o do primeiro byte ocupado por ela.
• Um inteiro ocupa 2 bytes.
• Suponha uma variável n do tipo inteira.
• Suponha que tenha atribuido a ela o valor 2.                11
• Quando n for referenciada devolverá o valor 2.
Operador de endereço (&)
• Se você referenciar n precedido de & - &n – então será devolvido o
  endereço do primeiro byte onde n está armazenada.
• Exemplo:
main() {
   int num;
   num = 2;
   printf(“ n Valor=%d, endereco=%u”, num, &num);
}




                                                                       12
Função getche() e getch()
• getche(): Lê o caracter do teclado e permite que já seja
  impresso na tela, diferente de scanf() em que é necessário
  apertar enter.
• getch(): lê o caracter do teclado e não permite que seja
  impresso na tela.
• Ambas não aceitam argumentos e devolvem o caracter lido
  para a função que a chamou.




                                                               13
Função getche() e getch()
#include <stdio.h>
#include <stdlib.h>

main()
{
  char ch;
  printf("n Digite algum caracter: ");
  ch = getche();
  printf(" n A tecla digitada e: %c ", ch , " n ");
  system("PAUSE");
}




                                                        14
Função getche() e getch()
#include <stdio.h>
#include <stdlib.h>
main()
{
   char ch;
   printf("n Digite algum caracter: ");
   ch = getch();
   printf(" n A tecla digitada e: %c ", ch , " n ");
   printf(" e a sua sucessora ASCII e: %c ", ch+1, " n ");
   system("PAUSE");
}




                                                              15
Função getchar()
• A função getchar() lê um caracter e retorna um inteiro que é
  ou o código do caracter, ou o valor -1 que corresponde a fim
  de arquivo.
#include <stdio.h>
#include <stdlib.h>
main()
{
  int c;
  c=getchar();
  printf("%d",c);
  system("PAUSE");                                               16
}
Função putchar()
• É o complemento de getchar().
• Aceita um argumento cujo valor será impresso.
#include <stdio.h>
#include <stdlib.h>
main()
{
  int c;
  c=getchar();
  putchar(c);
  system("PAUSE");
}                                                 17
Incremento
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num=0;
   printf(" n %d num", num);
   printf(" n %d ++num", ++num);
   printf(" n %d num", num);
   printf(" n %d ++num", ++num);
   printf(" n %d num", num);
   system("PAUSE");
}                                   18
Incremento
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num=0;
   printf(" n %d num: ", num);
   printf(" n %d num++: ", num++);
   printf(" n %d num: ", num);
   printf(" n %d num++: ", num++);
   printf(" n %d num: ", num);
   system("PAUSE");
}                                     19
Decremento
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num=10;
   printf(" n %d num: ", num);
   printf(" n %d --num: ", --num);
   printf(" n %d num: ", num);
   printf(" n %d --num: ", --num);
   printf(" n %d num: ", num);
   system("PAUSE");
}                                     20
Decremento
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num=10;
   printf(" n %d num: ", num);
   printf(" n %d num--: ", num--);
   printf(" n %d num: ", num);
   printf(" n %d num--: ", num--);
   printf(" n %d num: ", num);
   system("PAUSE");
}                                     21
sizeof
• É um operador em tempo de compilação unário.
• Retorna o tamanho, em bytes, da variável ou especificador de
  tipo, em parênteses, que ele precede.
• Devemos usá-lo para garantir portabilidade.




                                                                 22
sizeof
#include <stdio.h>
#include <stdlib.h>             printf("Tamanho do a : %dn", sizeof(a));
                                printf("Tamanho do b : %dn", sizeof(b));
main()
                                printf("Tamanho do c : %dn", sizeof(c));
{                               printf("Tamanho do d : %dn", sizeof(d));
  int           a;              printf("Tamanho do e : %dn", sizeof(e));
  short int         b;          printf("Tamanho do f : %dn", sizeof(f));
  long int         c;           printf("Tamanho do g : %dn", sizeof(g));
                                printf("Tamanho do h : %dn", sizeof(h));
  unsigned int         d;
                                printf("Tamanho do i : %dn", sizeof(i));
  unsigned short int e;         printf("Tamanho do j : %dn", sizeof(j));
  unsigned long int f;          system("PAUSE");
  float          g;         }
  double            h;
  long double          i;
                                                                            23
  char           j;
Comandos de controle de
programa
•   Seleção: if e switch (condicional)
•   Iteração: while, for e do-while (laço)
•   Desvio: break, continue, goto e return (salto)
•   Rótulo: case, default e label

• Um valor verdadeiro em C pode ser um número positivo ou
  negativo – é qualquer valor diferente de zero.



                                                            24
IF – SE
if ( condição )   if ( condição )
{                 {
       Bloco de          Bloco 1;
comandos;         }
}                 else
                  {
if ( condição )          Bloco 2;
else comandos;    }
                                    25
IF – SE
if ( condição) {
else if ( condição ) { }
else if ( condição ) { }
.
.
else { }
}

                           26
IF – SE
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num1;
   int num2;
   printf("Digite dois números n");
   scanf(" %d %d", &num1, &num2);
   if(num1 > num2){
       printf("O numero num1 e maior que num2");
       printf("n");
       }
       else {
           printf("O numero num1 e menor que num2");
           printf("n");
           }
   system("PAUSE");                                    27
}
IF – SE
#include <stdio.h>
#include <stdlib.h>
main()
{
   int a, b;
   printf("Digite dois numeros n");
   scanf("%d %d", &a, &b);
   if(b) printf("resultado: %d n", a/b);
   else printf("não pode dividir por zero n");
   system("PAUSE");
}                                                 28
Switch – chaveamento
switch( expressão ) {   • Comando de seleção
                          múltipla.
case constante1
                        • Testa sucessivamente o
      comandos;           valor de uma expressão
      break;              contra uma lista de
case constante2           constantes inteiras ou
                          de caractere.
      comandos;
                        • Quando        o   valor
      break;              coincide, os comandos
default:                  associados       àquela
                          constante           são
      comandos;                                     29
                          executados
}
Switch – chaveamento
#include <stdio.h>                   switch(ch) {
#include <stdlib.h>                          case '1':
main()                                           printf("Esta e a opcao 1
{                                  n");
   char ch;                                      break;
                                              case '2':
   printf("1. Testando a opcao 1                 printf("Esta e a opcao 2
n");                              n");
   printf("2. Testando a opcao 2                 break;
n");                                        case '3':
   printf("3. Testando a opcao 3                 printf("Esta e a opcao 3
n");                              n");
                                                 break;
   ch=getchar();                             default:
                                                   printf("nenhuma
                                   opcao selecionada");
                                                   }                        30
                                       system("PAUSE");
                                   }
Switch – chaveamento
• Switch avalia a expressão entre parenteses, após a palavra
  switch, e compara seu valor com os rótulos dos casos.
• A expressão entre parenteses deve ser de valor inteiro ou
  caractere.
• O comando break causa uma saída imediata do switch.
• Se break é omitido, a execução continua pelos próximos
  comandos case até que o fim do switch seja encontrado.




                                                               31
For – para
for ( inicialização; condição; incremento ) comando;

OU

for ( inicialização; condição; incremento )
{
         comando;
}



                                                       32
For – para
• É útil quando queremos repetir algo um número fixo de vezes.
• inicialização: instrução de atribuição, executada uma única vez
  antes do laço ser iniciado. [ x = 0 ]
• condição: instrução que controla o laço. Avalia como
  verdadeira ou falsa toda vez que o laço for iniciado ou
  reiniciado. Se verdadeira, o corpo do laço é executado.
  Quando falsa, o laço é terminado. [ x > 5 ]
• incremento: instrução executada toda vez após a execução do
  corpo do laço. [ x++ ]



                                                                    33
For – para
#include <stdio.h>
#include <stdlib.h>
main()
{
   int conta;
   for(conta=0; conta<10; conta++)
   printf(" conta = %d n", conta);
   system("PAUSE");
}

                                      34
For – para
#include <stdio.h>
#include <stdlib.h>
main()
{
   int conta, numero;
   printf("Digite um numero inteiro n");
   scanf("%d", &numero);
   for(conta=0; conta<numero; conta++)
   printf(" conta = %d n", conta);
   system("PAUSE");
}                                           35
While – enquanto
while ( condicao ) comando;

• O laço se repete quando a condição for verdadeira. Quando a
  condição for falsa, o controle do programa passa para a linha
  após o código do laço.
• Seu uso é apropriado em situações em que o laço pode ser
  terminado inesperadamente por condições desenvolvidas
  dentro do laço




                                                                  36
While – enquanto
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num1, num2;
   printf(" n Digite um numero inteiro entre 0 e 10 n");
   scanf("%d", &num1);
   while(num1<10){
       printf(" n enquanto num1 for menor que 10, imprima isto!
%d", num1);
       printf(" n ");
       num1++;
   }                                                               37
   system("PAUSE");
}
Do-While
• Este laço verifica a condição no final do laço. Portanto, o laço
  do-while sempre será executado pelo menos uma vez. O laço
  do-while repete até que a condição se torne falsa.

do {
         comandos;
}
while;



                                                                     38
Do-While
#include <stdio.h>
#include <stdlib.h>
main()
{
   int num;
   do{
       printf(" n Digite um numero entre 0 e 51 n ");
       scanf("%d", &num);
     }
     while(num<=50);
   system("PAUSE");
}                                                         39
Return
• É usado para retornar um valor de uma função.
• É um comando de desvio.
• Faz com que a execução retorne ao ponto em que a chamada
  à função foi feita.

return expressão;

• A expressão é o valor da função
• Uma função pára de executar quando encontra o primeiro
  return.
• As chaves ( } ) funcionam como um return.                   40
• Funções do tipo void não tem return, pois são funções que
  não retornam nenhum valor.
Goto – vá para
• Fornece compatibilidade com linguagens como BASIC e
  FORTRAN. Está em desuso.
• Pertence a uma classe à parte, a dos comandos de salto
  incondicional. O goto realiza um salto para um local
  especificado. Este local é determinado por um rótulo. Um
  rótulo, na linguagem C, é uma marca no programa. Você dá o
  nome que quiser a esta marca.
• O goto pode saltar para um rótulo que esteja mais à frente ou
  para trás no programa. Uma observação importante é que o
  rótulo e o goto devem estar dentro da mesma função.
goto rótulo;
.                                                                 41
.
rótulo;
Break
• Pode ser usado para terminar um case em um comando
  switch.
• Pode ser usado para forçar um término imediato de um laço.
• Quando break é encontrado dentro de um laço, o laço termina
  e o controle retorna para o comando seguinte.
• Pode ser usado no corpo de qualquer estrutura de laço.




                                                                42
Continue
• Força a próxima interação do laço e pula o código que estiver
  abaixo.
• While e do-while: faz com que o controle vá para o teste e
  depois continua o processo do laço
• For: primeiro executa o incremento do laço, depois faz o teste
  condicional e no fim continua o laço.
• Salta uma parte do programa, pula o código que estiver em
  seguida.




                                                                   43
Exit()
• Força o término do programa inteiro.
• void exit(int codigo_de_retorno);
• O valor código_de_retorno e retornado ao processo
  chamador, que é normalmente o sistema operacional.
• O número zero é normalmente usado como código de
  retorno.
• Usado normalmente quando uma condição mandadatória
  para a execução do programa não é satisfeita.



                                                       44
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int conta;
  for(conta=0;conta<10;conta++);
  printf("conta=%d n", conta);
  system("PAUSE");
}

                                   45
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int conta;
  for(conta=9;conta<10;conta--);
  printf("conta=%d n", conta);
  system("PAUSE");
}

                                   46
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int x,y
  for(x=0, y=0; x+y < 100; x=x+1, y=y+1);
  printf("%d n", x+y);
  system("PAUSE");
}

                                            47
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  char ch;
  for(ch='a'; ch<='z'; ch++);
  printf("o valor ASCII de %c e %d n ", ch, ch);
  system("PAUSE");
}

                                                    48
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  char ch;
  for(;(ch=getch())!='X';)
  printf("%c", ch+1);
  system("PAUSE");
}

                             49
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  for(;;printf("laco infinito n"))
  system("PAUSE");
}




                                      50
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  char c;
  for(;(c=getch())!='X';printf("%c",c+1))
  system("PAUSE");
}



                                            51
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int conta, total;
  for(conta=0, total=0; conta<10; conta++) {
          total+=conta;
          printf("conta=%d, total=%d n", conta, total);
          }
  system("PAUSE");
}                                                          52
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int conta, total;
  for(conta=0, total=0; conta<10; conta++) {
          total+=conta;
          printf("conta=%d, total=%d n", conta, total);
          }
  system("PAUSE");
}                                                          53
Exemplos para testar no
laboratório
#include <stdio.h>
#include <stdlib.h>
main()
{
  int i, j, k;
  printf("n");
  for(k=0; k<=1; k++){
    printf("n");
    for(i=1; i<5; i++)
       printf("Tabuada do %3d ", +i+4*k+1);
    printf("n");
    for(i=1; i<=9; i++){
       for(j=2+4*k; j<=5+4*k; j++)
          printf("%3d x%3d = %3d ", j, i, j*i);
        }                                         54
     }
  system("PAUSE");
}
Mais exemplos
• Pegar os livros da bibliografia básica e testar os exemplos dos
  capítulos.




                                                                    55

Mais conteúdo relacionado

Mais procurados

Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
Rafael_Lima87
 

Mais procurados (20)

Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Estrutura de Dados - Ponteiros
Estrutura de Dados - PonteirosEstrutura de Dados - Ponteiros
Estrutura de Dados - Ponteiros
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
C++
C++C++
C++
 
Ling c
Ling cLing c
Ling c
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3
 
Algoritmos - capítulo 6
Algoritmos - capítulo 6Algoritmos - capítulo 6
Algoritmos - capítulo 6
 
Aula 6 pc - slides
Aula 6   pc - slidesAula 6   pc - slides
Aula 6 pc - slides
 
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
 
Funções em C
Funções em CFunções em C
Funções em C
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 

Destaque

Eurobuild Construtec
Eurobuild ConstrutecEurobuild Construtec
Eurobuild Construtec
Sandra Meno
 
CAS_Overall_Findings
CAS_Overall_FindingsCAS_Overall_Findings
CAS_Overall_Findings
David Grant
 

Destaque (20)

A Complexidade Nos Sistemas
A Complexidade Nos SistemasA Complexidade Nos Sistemas
A Complexidade Nos Sistemas
 
Informativo COMBAT: Remuniciadores MaxFire
Informativo COMBAT: Remuniciadores MaxFireInformativo COMBAT: Remuniciadores MaxFire
Informativo COMBAT: Remuniciadores MaxFire
 
Portafolio de Diagnostico
Portafolio de DiagnosticoPortafolio de Diagnostico
Portafolio de Diagnostico
 
Presentación Unincube
Presentación UnincubePresentación Unincube
Presentación Unincube
 
Smau Milano 2016 - bcloud
Smau Milano 2016 - bcloudSmau Milano 2016 - bcloud
Smau Milano 2016 - bcloud
 
PLATA NATIVA
PLATA NATIVAPLATA NATIVA
PLATA NATIVA
 
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
Cuando la Teoría de Números se encuentra con la Geometría Algebraica. Una inv...
 
Catálogo Pro 2012. ASTEX
Catálogo Pro 2012. ASTEXCatálogo Pro 2012. ASTEX
Catálogo Pro 2012. ASTEX
 
Udruga SOL eng
Udruga SOL engUdruga SOL eng
Udruga SOL eng
 
2012 congreso ses burgos programa liron
2012 congreso ses burgos programa liron2012 congreso ses burgos programa liron
2012 congreso ses burgos programa liron
 
Actividad de servicios
Actividad de serviciosActividad de servicios
Actividad de servicios
 
Eurobuild Construtec
Eurobuild ConstrutecEurobuild Construtec
Eurobuild Construtec
 
Informe Observatorio Bizkaia Basket. El entrenador del futuro
Informe Observatorio Bizkaia Basket. El entrenador del futuroInforme Observatorio Bizkaia Basket. El entrenador del futuro
Informe Observatorio Bizkaia Basket. El entrenador del futuro
 
Epifisiolisis Capital Femoral (SCFE)
Epifisiolisis Capital Femoral (SCFE)Epifisiolisis Capital Femoral (SCFE)
Epifisiolisis Capital Femoral (SCFE)
 
Marketing Verde : IM Natural Cosmetobelleza
Marketing Verde : IM Natural CosmetobellezaMarketing Verde : IM Natural Cosmetobelleza
Marketing Verde : IM Natural Cosmetobelleza
 
Agile Development Ecosystem
Agile Development EcosystemAgile Development Ecosystem
Agile Development Ecosystem
 
CAS_Overall_Findings
CAS_Overall_FindingsCAS_Overall_Findings
CAS_Overall_Findings
 
Desarrollando la Unidad Matrimonial mediante la Comunicación
Desarrollando la Unidad Matrimonial mediante la ComunicaciónDesarrollando la Unidad Matrimonial mediante la Comunicación
Desarrollando la Unidad Matrimonial mediante la Comunicación
 
Friends Before Phones: It's Time to End Cell Phone Addiction
Friends Before Phones: It's Time to End  Cell Phone AddictionFriends Before Phones: It's Time to End  Cell Phone Addiction
Friends Before Phones: It's Time to End Cell Phone Addiction
 
Presentation given at the Demand Solutions Conference on Sales and Operations...
Presentation given at the Demand Solutions Conference on Sales and Operations...Presentation given at the Demand Solutions Conference on Sales and Operations...
Presentation given at the Demand Solutions Conference on Sales and Operations...
 

Semelhante a Comandos de Controle de Programa em C

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
mmind
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
Jocelma Rios
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
Bianca Dantas
 
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
engenhariadecomputacao
 

Semelhante a Comandos de Controle de Programa em C (20)

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Ud2
Ud2Ud2
Ud2
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
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
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de códigoAula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Modularização
ModularizaçãoModularização
Modularização
 
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
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
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
 

Mais de Elaine Cecília Gatto

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
LusGlissonGud
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
azulassessoria9
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
azulassessoria9
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
LeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
Ana Lemos
 

Último (20)

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 

Comandos de Controle de Programa em C

  • 1. Programação de Computadores Aula 2 09/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 2: Comandos de Controle de Programa Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coraçã – USC Bauru/SP
  • 2. Termos Importantes • Código-fonte: é o texto de um programa que um usário pode ler. É a entrada para o compilador C. • Código-Objeto: é a tradução do código-fonte de um programa em código de máquina. É a entrada para o linkeditor. • Linkeditor: é um programa que combina as funções da biblioteca C padrão com o código-fonte que você escreveu gerando um executável. • Biblioteca: é um arquivo contendo as funções padrão que podem ser utilizadas pelo seu programa. • Tempo de compilação: são os eventos que ocorrem enquanto o seu programa está sendo compilado. Um erro de sintaxe é uma ocorrência em tempo de compilação. 2 • Tempo de execução: são os eventos que ocorrem enquanto o seu programa está sendo executado.
  • 3. Variáveis • Variáveis locais: uma variável local é aquela que é declarada dentro de uma função e só pode ser utilizada naquele “local” do seu código-fonte. • Variáveis globais: uma variável global é aquela que é declarada fora de funções e podem ser utilizadas por qualquer “parte” do seu código-fonte. Uma variável global guarda o valor armazenado por ela, durante toda a execução do programa. 3
  • 4. Modificadores de tipo de acesso • const: é uma variável que não pode ser modificada, possui um valor fixado. • volatile: uma variável desse tipo pode ser alterada de maneira não explicitamente especificada no programa. Exemplo: hora e data do sistema. A variável que armazena o valor do sistema é alterada pelo sistema operacional e não por você. 4
  • 5. Especificadores de tipo de classe de armazenamento • Variáveis globais static: funcionam como variáveis globais dentro de um módulo. São variáveis globais que não são e, nem podem ser, conhecidas em outros módulos. Isto é útil quando queremos isolar pedaços de um programa para evitar mudanças acidentais em variáveis globais. • Variáveis locais static: são variáveis cujo valor é mantido de uma chamada da função para a outra. 5
  • 6. Especificadores de tipo de classe de armazenamento • extern: define variáveis que serão usadas em um arquivo apesar de terem sido declaradas em outro. Podemos ter programas de milhares de linhas. Estes podem ser divididos em vários arquivos (módulos) que serão compilados separadamente. Digamos que para um programa grande tenhamos duas variáveis globais e estas variáveis são declaradas normalmente em um dos arquivos (módulos) do programa. Num outro arquivo (módulo) do programa temos uma rotina que deve usar as variáveis globais. Então nesse caso devemos usar extern para que esses módulos possam encontrar as variáveis. 6
  • 7. Especificadores de tipo de classe de armazenamento Arquivo 1 (módulo 1) Arquivo 2 (módulo 2) int x, y; extern int x, y; char ch; extern char ch; main(void) { funcao_2(void) { . x = y/10; . } . funcao_3( ) { } y = 10; funcao_1( ) { } x = 123; 7 }
  • 8. Especificadores de tipo de classe de armazenamento • register: o computador tem a memória principal e os registradores da CPU. As variáveis e o programa são armazenados na memória. Register diz ao compilador que a variável em questão deve ser armazenada em um registrador da CPU ao invés de uma posição da memória. Usado apenas para variáveis locais e parâmetros formais de uma função. 8
  • 9. Parâmetros formais • Normalmente uma função utiliza argumentos que, na verdade são variáveis. Essas variáveis são utilizadas dentro da função e são passadas como parâmetros para a função. funcao(argumentos ou parâmetros formais) { } exemplo: int contador( numero ) { numero = numero + 1; return 0; } 9
  • 10. Código de formatação da função scanf() Código Função Exemplo %c Ler um único caracter scanf(“%c”, ‘a’); %d Ler um inteiro decimal scanf(“%d”, 20); %e Ler um número em notação scanf(“%e”, &num); científica %f Ler um número em ponto scanf(“%f”, 25.6); flutuante %o Ler um inteiro octal scanf(“%o”, 012); %s Ler uma série de caracteres scanf(“%s”, ‘abcdeteste’); %x Ler um número hexadecimal scanf(“%x”, 0x80); %u Ler um decimal sem sinal scanf(“%u”, &num); 10 %l Ler um inteiro long scanf(“%l”, &num);
  • 11. Operador de endereço (&) • A memória do seu computador é dividida em bytes • Estes bytes são numerados de 0 até o limite da memória da sua máquina. • Estes números são chamados de endereços de bytes. • Um endereçoo e o nome que o computador usa para identificar a variável. • Toda variável ocupa uma certa localização na memória. • Seu endereço é o do primeiro byte ocupado por ela. • Um inteiro ocupa 2 bytes. • Suponha uma variável n do tipo inteira. • Suponha que tenha atribuido a ela o valor 2. 11 • Quando n for referenciada devolverá o valor 2.
  • 12. Operador de endereço (&) • Se você referenciar n precedido de & - &n – então será devolvido o endereço do primeiro byte onde n está armazenada. • Exemplo: main() { int num; num = 2; printf(“ n Valor=%d, endereco=%u”, num, &num); } 12
  • 13. Função getche() e getch() • getche(): Lê o caracter do teclado e permite que já seja impresso na tela, diferente de scanf() em que é necessário apertar enter. • getch(): lê o caracter do teclado e não permite que seja impresso na tela. • Ambas não aceitam argumentos e devolvem o caracter lido para a função que a chamou. 13
  • 14. Função getche() e getch() #include <stdio.h> #include <stdlib.h> main() { char ch; printf("n Digite algum caracter: "); ch = getche(); printf(" n A tecla digitada e: %c ", ch , " n "); system("PAUSE"); } 14
  • 15. Função getche() e getch() #include <stdio.h> #include <stdlib.h> main() { char ch; printf("n Digite algum caracter: "); ch = getch(); printf(" n A tecla digitada e: %c ", ch , " n "); printf(" e a sua sucessora ASCII e: %c ", ch+1, " n "); system("PAUSE"); } 15
  • 16. Função getchar() • A função getchar() lê um caracter e retorna um inteiro que é ou o código do caracter, ou o valor -1 que corresponde a fim de arquivo. #include <stdio.h> #include <stdlib.h> main() { int c; c=getchar(); printf("%d",c); system("PAUSE"); 16 }
  • 17. Função putchar() • É o complemento de getchar(). • Aceita um argumento cujo valor será impresso. #include <stdio.h> #include <stdlib.h> main() { int c; c=getchar(); putchar(c); system("PAUSE"); } 17
  • 18. Incremento #include <stdio.h> #include <stdlib.h> main() { int num=0; printf(" n %d num", num); printf(" n %d ++num", ++num); printf(" n %d num", num); printf(" n %d ++num", ++num); printf(" n %d num", num); system("PAUSE"); } 18
  • 19. Incremento #include <stdio.h> #include <stdlib.h> main() { int num=0; printf(" n %d num: ", num); printf(" n %d num++: ", num++); printf(" n %d num: ", num); printf(" n %d num++: ", num++); printf(" n %d num: ", num); system("PAUSE"); } 19
  • 20. Decremento #include <stdio.h> #include <stdlib.h> main() { int num=10; printf(" n %d num: ", num); printf(" n %d --num: ", --num); printf(" n %d num: ", num); printf(" n %d --num: ", --num); printf(" n %d num: ", num); system("PAUSE"); } 20
  • 21. Decremento #include <stdio.h> #include <stdlib.h> main() { int num=10; printf(" n %d num: ", num); printf(" n %d num--: ", num--); printf(" n %d num: ", num); printf(" n %d num--: ", num--); printf(" n %d num: ", num); system("PAUSE"); } 21
  • 22. sizeof • É um operador em tempo de compilação unário. • Retorna o tamanho, em bytes, da variável ou especificador de tipo, em parênteses, que ele precede. • Devemos usá-lo para garantir portabilidade. 22
  • 23. sizeof #include <stdio.h> #include <stdlib.h> printf("Tamanho do a : %dn", sizeof(a)); printf("Tamanho do b : %dn", sizeof(b)); main() printf("Tamanho do c : %dn", sizeof(c)); { printf("Tamanho do d : %dn", sizeof(d)); int a; printf("Tamanho do e : %dn", sizeof(e)); short int b; printf("Tamanho do f : %dn", sizeof(f)); long int c; printf("Tamanho do g : %dn", sizeof(g)); printf("Tamanho do h : %dn", sizeof(h)); unsigned int d; printf("Tamanho do i : %dn", sizeof(i)); unsigned short int e; printf("Tamanho do j : %dn", sizeof(j)); unsigned long int f; system("PAUSE"); float g; } double h; long double i; 23 char j;
  • 24. Comandos de controle de programa • Seleção: if e switch (condicional) • Iteração: while, for e do-while (laço) • Desvio: break, continue, goto e return (salto) • Rótulo: case, default e label • Um valor verdadeiro em C pode ser um número positivo ou negativo – é qualquer valor diferente de zero. 24
  • 25. IF – SE if ( condição ) if ( condição ) { { Bloco de Bloco 1; comandos; } } else { if ( condição ) Bloco 2; else comandos; } 25
  • 26. IF – SE if ( condição) { else if ( condição ) { } else if ( condição ) { } . . else { } } 26
  • 27. IF – SE #include <stdio.h> #include <stdlib.h> main() { int num1; int num2; printf("Digite dois números n"); scanf(" %d %d", &num1, &num2); if(num1 > num2){ printf("O numero num1 e maior que num2"); printf("n"); } else { printf("O numero num1 e menor que num2"); printf("n"); } system("PAUSE"); 27 }
  • 28. IF – SE #include <stdio.h> #include <stdlib.h> main() { int a, b; printf("Digite dois numeros n"); scanf("%d %d", &a, &b); if(b) printf("resultado: %d n", a/b); else printf("não pode dividir por zero n"); system("PAUSE"); } 28
  • 29. Switch – chaveamento switch( expressão ) { • Comando de seleção múltipla. case constante1 • Testa sucessivamente o comandos; valor de uma expressão break; contra uma lista de case constante2 constantes inteiras ou de caractere. comandos; • Quando o valor break; coincide, os comandos default: associados àquela constante são comandos; 29 executados }
  • 30. Switch – chaveamento #include <stdio.h> switch(ch) { #include <stdlib.h> case '1': main() printf("Esta e a opcao 1 { n"); char ch; break; case '2': printf("1. Testando a opcao 1 printf("Esta e a opcao 2 n"); n"); printf("2. Testando a opcao 2 break; n"); case '3': printf("3. Testando a opcao 3 printf("Esta e a opcao 3 n"); n"); break; ch=getchar(); default: printf("nenhuma opcao selecionada"); } 30 system("PAUSE"); }
  • 31. Switch – chaveamento • Switch avalia a expressão entre parenteses, após a palavra switch, e compara seu valor com os rótulos dos casos. • A expressão entre parenteses deve ser de valor inteiro ou caractere. • O comando break causa uma saída imediata do switch. • Se break é omitido, a execução continua pelos próximos comandos case até que o fim do switch seja encontrado. 31
  • 32. For – para for ( inicialização; condição; incremento ) comando; OU for ( inicialização; condição; incremento ) { comando; } 32
  • 33. For – para • É útil quando queremos repetir algo um número fixo de vezes. • inicialização: instrução de atribuição, executada uma única vez antes do laço ser iniciado. [ x = 0 ] • condição: instrução que controla o laço. Avalia como verdadeira ou falsa toda vez que o laço for iniciado ou reiniciado. Se verdadeira, o corpo do laço é executado. Quando falsa, o laço é terminado. [ x > 5 ] • incremento: instrução executada toda vez após a execução do corpo do laço. [ x++ ] 33
  • 34. For – para #include <stdio.h> #include <stdlib.h> main() { int conta; for(conta=0; conta<10; conta++) printf(" conta = %d n", conta); system("PAUSE"); } 34
  • 35. For – para #include <stdio.h> #include <stdlib.h> main() { int conta, numero; printf("Digite um numero inteiro n"); scanf("%d", &numero); for(conta=0; conta<numero; conta++) printf(" conta = %d n", conta); system("PAUSE"); } 35
  • 36. While – enquanto while ( condicao ) comando; • O laço se repete quando a condição for verdadeira. Quando a condição for falsa, o controle do programa passa para a linha após o código do laço. • Seu uso é apropriado em situações em que o laço pode ser terminado inesperadamente por condições desenvolvidas dentro do laço 36
  • 37. While – enquanto #include <stdio.h> #include <stdlib.h> main() { int num1, num2; printf(" n Digite um numero inteiro entre 0 e 10 n"); scanf("%d", &num1); while(num1<10){ printf(" n enquanto num1 for menor que 10, imprima isto! %d", num1); printf(" n "); num1++; } 37 system("PAUSE"); }
  • 38. Do-While • Este laço verifica a condição no final do laço. Portanto, o laço do-while sempre será executado pelo menos uma vez. O laço do-while repete até que a condição se torne falsa. do { comandos; } while; 38
  • 39. Do-While #include <stdio.h> #include <stdlib.h> main() { int num; do{ printf(" n Digite um numero entre 0 e 51 n "); scanf("%d", &num); } while(num<=50); system("PAUSE"); } 39
  • 40. Return • É usado para retornar um valor de uma função. • É um comando de desvio. • Faz com que a execução retorne ao ponto em que a chamada à função foi feita. return expressão; • A expressão é o valor da função • Uma função pára de executar quando encontra o primeiro return. • As chaves ( } ) funcionam como um return. 40 • Funções do tipo void não tem return, pois são funções que não retornam nenhum valor.
  • 41. Goto – vá para • Fornece compatibilidade com linguagens como BASIC e FORTRAN. Está em desuso. • Pertence a uma classe à parte, a dos comandos de salto incondicional. O goto realiza um salto para um local especificado. Este local é determinado por um rótulo. Um rótulo, na linguagem C, é uma marca no programa. Você dá o nome que quiser a esta marca. • O goto pode saltar para um rótulo que esteja mais à frente ou para trás no programa. Uma observação importante é que o rótulo e o goto devem estar dentro da mesma função. goto rótulo; . 41 . rótulo;
  • 42. Break • Pode ser usado para terminar um case em um comando switch. • Pode ser usado para forçar um término imediato de um laço. • Quando break é encontrado dentro de um laço, o laço termina e o controle retorna para o comando seguinte. • Pode ser usado no corpo de qualquer estrutura de laço. 42
  • 43. Continue • Força a próxima interação do laço e pula o código que estiver abaixo. • While e do-while: faz com que o controle vá para o teste e depois continua o processo do laço • For: primeiro executa o incremento do laço, depois faz o teste condicional e no fim continua o laço. • Salta uma parte do programa, pula o código que estiver em seguida. 43
  • 44. Exit() • Força o término do programa inteiro. • void exit(int codigo_de_retorno); • O valor código_de_retorno e retornado ao processo chamador, que é normalmente o sistema operacional. • O número zero é normalmente usado como código de retorno. • Usado normalmente quando uma condição mandadatória para a execução do programa não é satisfeita. 44
  • 45. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int conta; for(conta=0;conta<10;conta++); printf("conta=%d n", conta); system("PAUSE"); } 45
  • 46. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int conta; for(conta=9;conta<10;conta--); printf("conta=%d n", conta); system("PAUSE"); } 46
  • 47. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int x,y for(x=0, y=0; x+y < 100; x=x+1, y=y+1); printf("%d n", x+y); system("PAUSE"); } 47
  • 48. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { char ch; for(ch='a'; ch<='z'; ch++); printf("o valor ASCII de %c e %d n ", ch, ch); system("PAUSE"); } 48
  • 49. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { char ch; for(;(ch=getch())!='X';) printf("%c", ch+1); system("PAUSE"); } 49
  • 50. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { for(;;printf("laco infinito n")) system("PAUSE"); } 50
  • 51. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { char c; for(;(c=getch())!='X';printf("%c",c+1)) system("PAUSE"); } 51
  • 52. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int conta, total; for(conta=0, total=0; conta<10; conta++) { total+=conta; printf("conta=%d, total=%d n", conta, total); } system("PAUSE"); } 52
  • 53. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int conta, total; for(conta=0, total=0; conta<10; conta++) { total+=conta; printf("conta=%d, total=%d n", conta, total); } system("PAUSE"); } 53
  • 54. Exemplos para testar no laboratório #include <stdio.h> #include <stdlib.h> main() { int i, j, k; printf("n"); for(k=0; k<=1; k++){ printf("n"); for(i=1; i<5; i++) printf("Tabuada do %3d ", +i+4*k+1); printf("n"); for(i=1; i<=9; i++){ for(j=2+4*k; j<=5+4*k; j++) printf("%3d x%3d = %3d ", j, i, j*i); } 54 } system("PAUSE"); }
  • 55. Mais exemplos • Pegar os livros da bibliografia básica e testar os exemplos dos capítulos. 55