Prof. Rafael Rodrigues de Souza
Consiste em uma coleção de funções

forma geral

    Main ( ) ® primeira função a ser executada
    { ® início da função
    } ® fim da função

obs: para o compilador

Main ( ) { }       Main ( )
                   {        }
Main
        (
        )        São programas idênticos
       {
       }
Tem que existir em algum lugar

Marca o início da execução

ex:
      Main( )
      {
        printf (“meu primeiro programa”);
      }

obs:

toda instrução deve ser encerrada por ;
printf é uma função, note um ‘( )’ após o nome


novamente:

Main ( ) { printf (“meu primeiro programa”); }
Função de E / S não faz parte da definição de C

Note que:

uma função pode receber uma informação (argumento)
printf( “meu primeiro programa”) ;
                 ¯
    meu primeiro programa

SINTAXE:

printf (“expressão de controle”, lista de argumentos);

ex:
      Main ( )
      {
        printf (“o número %d”, 2);
      }                ¯
                código de formatação
CARACTERES DE CONTROLE

n    nova linha
r         “enter”
t    tabulação (tab)
b    retrocesso
“    aspas
    barra

CÓDIGO DE FORMATAÇÃO

%c      caracter
%d     decimal
%e     notação científica
%f     ponto flutuante
%o     octal
%s     cadeia de caracteres (string)
%x     hexadecimal
Constante: “objeto” que tem valor fixo e inalterável

ex:    ‘c’,   8,   “primeiro programa”

Uso:

  Main ( )
  {
    printf (“ o número %d”, 2);
  }
Um “objeto” que pode assumir diferentes valores

espaço de memória de um certo tipo de dado associado a um nome para
   referenciar seu conteúdo

ex:

      Main ( )
      {
        int idade;
        idade = 30;

          printf (“ mínima idade é : %d”, idade);
      }
tipo          bytes        escala
char           1         -128 a 127
int            2         -32.768 a 32.767
float          4          3.4e-38 a 3.4e+38
double          8         1.7e-308 a 1.7e+308
void           0          sem valor


Modificadores de tipos

Long ou Long int       (4 bytes)
Unsigned Char         (0 a 255)
Unsigned int          (0 a 65.535)
função de E / S

Sintaxe:

 scanf(“expressão de controle”, lista de argumentos)


ex: Main ( )
     {
       int num;
        scanf(“ %d”, &num);
     }
 Um endereço de memória é o nome que o
 computador usa para identificar uma
 variável

 Toda variável ocupa uma área de memória
 e seu endereço é o do primeiro byte por ela
 ocupado
   %c ® caracter
   %d ® inteiro
   %e ® número ou notação científica
   %f ® ponto flutuante
   %o ® octal
   %x ® hexadecimal
   %s ® string (cadeia de caracteres)
   %lf ® double
    Main ( )
    {
      char a ;
        printf ( “digite um caracter” );
        scanf ( “ % c”, &a );
        printf (“ n %c = %d em decimal”, a, a);
        printf (“%o em octal, %x em hexadecimal”, a, a);
    }
 Incrementam / decrementam uma unidade
 de seu operando

 Pode ser pré – fixado ou pós - fixado


ex: int n;
   n = 0;
   n++; //     n = n + 1;     n=1
   ++n; //     n = n + 1;     n=2
+=, -=, *=, /=, %=

atribuir um novo valor à variável dependendo do operador e da expressão a direita

A sintaxe:
  x op= exp é equivalente a x = (x) op (exp)

Ex:
      i += 2             i = i + 2;
      x *= y + 1         x = x * (y + 1)
      t /= 4             t = t/4
      p %= 6             p= p%6
      h -= 3             h = h – 3;
Usados para comparações
 > maior
 >= maior ou igual
 < menor
 <= menor ou igual
 ==      igualdade
 != diferença
 O comando de controle mais comum é o
  comando de seleção:

if (expressão) comando;
  else comando;

 Notacao alternativa para atribuicoes:
x = 10;
y = x>9 ? 100 : 200;
char ch();
printf(“1. Inserir Registro”);
printf(“2. Remover Registro”);
printf(“3. Busca”);

ph = getchar();

switch(ch) {
  case ‘1’:
   insere_registro();
   break;
  case ‘2’:
   remove_resitro();
   break;
  case ‘3’:
   busca_resitro();
   break;
  default:
   printf(“opção inválida”)
   break;
}
for (inicialização; condição; incremento)
  comando;

int x;
for (x=1; x<=100; x++) printf(“%d”, x);
 while (condição) comando;


char ch = ‘0’; // Inicia ch com caracter nulo
while (ch != ‘A’) ch = getchar();
Diferentemente do laço while, o do...while
testa a condição somente no final, garantindo
que os comandos sejam executados pelo menos
uma vez

do {
  scanf(“%d”, &num);
} while (num > 100);
Exemplo de um vetor de inteiros
  int vet[10];

• Lembre-se: o primeiro item do vetor é
sempre de índice zero!

int i
for(i=0; i<10; i++) vet[i] = i*2;
Lembre-se: a linguagem C não tem verificação de
  limites!
int vet[10];
int i;
for(i=0; i<20; i++) vet[i] = i*2;
• Isso irá gerar um erro de execução
▫ Qual a diferenca de erro de execucao e erro de
   compilacao?
Passando vetores para funções?

▫ Uma das formas
void func1(int x[]){
.
.
.
}
Uma matriz bidimensional

int mat[10][20];
int i, j;
for(i=0; i<10; i++)
  for (j=0; j<20; j++) {
       scanf(“%d”, &mat[i][j]);
       printf(“%d”, mat[i][j])
  }
• Strings, em C, são sempre vetores do tipo
char, que precisam ter um caracter nulo ‘0’
para indicar o seu fim.

// Iniciar a string assim pode
char str1[15] = “Hello World”;

str1 = “Teste”;   // Assim NÃO pode!!

strcpy(str1, “Teste”);
• Funcões para trabalhar com string?
▫ #include <string.h>
strcpy(s1, s2); copia s1 em s2
strcat(s1, s2); concatena s2 no final de s2
strlen(s1); retorna o tamanho de s1
strcmp(s1, s2); retorna 0 se s1 e s2 são iguais, negativo
   se s1<s2, e positivo se s1>s2
s1 = gets(); lê um string digitada pelo usuário
   Definição :
   Procedimentos são estruturas que agrupam um
    conjunto de comandos, que são executados quando
    procedimento é chamado.
   Funções são semelhantes aos procedimentos,
    exceto que uma função sempre retorna um valor.
tipo NomeDaFuncao( lista_de_parâmetros )
{
  instruções;
}
Exemplo :
int SomaDoisNumeros(int A, int B)
{
  return A + B;
}
void ImprimeTexto()
{
  printf(“Ola Mundo”);
}
int SomaDoisNumeros(int A, int B)
{
  return A + B;
}
int main()
{
  int r;
  r = SomaDoisNumeros(30, 50);
  ImprimeTexto();
}
Exercício:

Escreva um procedimento ou função em
  linguagem C que recebe como parâmetros as
  duas notas da prova de um aluno e escreva se
  ele foi aprovado(>=70) ou reprovado(<70).
• Um ponteiro e uma variavel que contem um
endereco de memoria

• Esse endereco normalmente e a posicao de
  uma
outra variavel na memoria

• Se uma variavel tem o endereco de outra,
  entao
diz-se que a primeira aponta para a segunda
Declaracao de um ponteiro:
  char *p;
Operadore de endereco: &
char x;
p = &x; // P recebe o endereço da
   variável x
Operador de referencia: *
*p = 10; // é o mesmo que x=10
char y;
y = *p; // “y recebe o que está no
   endereço p”

Ling c

  • 1.
  • 2.
    Consiste em umacoleção de funções forma geral Main ( ) ® primeira função a ser executada { ® início da função } ® fim da função obs: para o compilador Main ( ) { } Main ( ) { } Main ( ) São programas idênticos { }
  • 3.
    Tem que existirem algum lugar Marca o início da execução ex: Main( ) { printf (“meu primeiro programa”); } obs: toda instrução deve ser encerrada por ; printf é uma função, note um ‘( )’ após o nome novamente: Main ( ) { printf (“meu primeiro programa”); }
  • 4.
    Função de E/ S não faz parte da definição de C Note que: uma função pode receber uma informação (argumento) printf( “meu primeiro programa”) ; ¯ meu primeiro programa SINTAXE: printf (“expressão de controle”, lista de argumentos); ex: Main ( ) { printf (“o número %d”, 2); } ¯ código de formatação
  • 5.
    CARACTERES DE CONTROLE n nova linha r “enter” t tabulação (tab) b retrocesso “ aspas barra CÓDIGO DE FORMATAÇÃO %c caracter %d decimal %e notação científica %f ponto flutuante %o octal %s cadeia de caracteres (string) %x hexadecimal
  • 6.
    Constante: “objeto” quetem valor fixo e inalterável ex: ‘c’, 8, “primeiro programa” Uso: Main ( ) { printf (“ o número %d”, 2); }
  • 7.
    Um “objeto” quepode assumir diferentes valores espaço de memória de um certo tipo de dado associado a um nome para referenciar seu conteúdo ex: Main ( ) { int idade; idade = 30; printf (“ mínima idade é : %d”, idade); }
  • 8.
    tipo bytes escala char 1 -128 a 127 int 2 -32.768 a 32.767 float 4 3.4e-38 a 3.4e+38 double 8 1.7e-308 a 1.7e+308 void 0 sem valor Modificadores de tipos Long ou Long int (4 bytes) Unsigned Char (0 a 255) Unsigned int (0 a 65.535)
  • 9.
    função de E/ S Sintaxe: scanf(“expressão de controle”, lista de argumentos) ex: Main ( ) { int num; scanf(“ %d”, &num); }
  • 10.
     Um endereçode memória é o nome que o computador usa para identificar uma variável  Toda variável ocupa uma área de memória e seu endereço é o do primeiro byte por ela ocupado
  • 11.
    %c ® caracter  %d ® inteiro  %e ® número ou notação científica  %f ® ponto flutuante  %o ® octal  %x ® hexadecimal  %s ® string (cadeia de caracteres)  %lf ® double Main ( ) { char a ; printf ( “digite um caracter” ); scanf ( “ % c”, &a ); printf (“ n %c = %d em decimal”, a, a); printf (“%o em octal, %x em hexadecimal”, a, a); }
  • 12.
     Incrementam /decrementam uma unidade de seu operando  Pode ser pré – fixado ou pós - fixado ex: int n; n = 0; n++; // n = n + 1; n=1 ++n; // n = n + 1; n=2
  • 13.
    +=, -=, *=,/=, %= atribuir um novo valor à variável dependendo do operador e da expressão a direita A sintaxe: x op= exp é equivalente a x = (x) op (exp) Ex: i += 2  i = i + 2; x *= y + 1  x = x * (y + 1) t /= 4  t = t/4 p %= 6  p= p%6 h -= 3  h = h – 3;
  • 14.
    Usados para comparações > maior >= maior ou igual < menor <= menor ou igual == igualdade != diferença
  • 15.
     O comandode controle mais comum é o comando de seleção: if (expressão) comando; else comando;  Notacao alternativa para atribuicoes: x = 10; y = x>9 ? 100 : 200;
  • 16.
    char ch(); printf(“1. InserirRegistro”); printf(“2. Remover Registro”); printf(“3. Busca”); ph = getchar(); switch(ch) { case ‘1’: insere_registro(); break; case ‘2’: remove_resitro(); break; case ‘3’: busca_resitro(); break; default: printf(“opção inválida”) break; }
  • 17.
    for (inicialização; condição;incremento) comando; int x; for (x=1; x<=100; x++) printf(“%d”, x);
  • 18.
     while (condição)comando; char ch = ‘0’; // Inicia ch com caracter nulo while (ch != ‘A’) ch = getchar();
  • 19.
    Diferentemente do laçowhile, o do...while testa a condição somente no final, garantindo que os comandos sejam executados pelo menos uma vez do { scanf(“%d”, &num); } while (num > 100);
  • 20.
    Exemplo de umvetor de inteiros int vet[10]; • Lembre-se: o primeiro item do vetor é sempre de índice zero! int i for(i=0; i<10; i++) vet[i] = i*2;
  • 21.
    Lembre-se: a linguagemC não tem verificação de limites! int vet[10]; int i; for(i=0; i<20; i++) vet[i] = i*2; • Isso irá gerar um erro de execução ▫ Qual a diferenca de erro de execucao e erro de compilacao?
  • 22.
    Passando vetores parafunções? ▫ Uma das formas void func1(int x[]){ . . . }
  • 23.
    Uma matriz bidimensional intmat[10][20]; int i, j; for(i=0; i<10; i++) for (j=0; j<20; j++) { scanf(“%d”, &mat[i][j]); printf(“%d”, mat[i][j]) }
  • 24.
    • Strings, emC, são sempre vetores do tipo char, que precisam ter um caracter nulo ‘0’ para indicar o seu fim. // Iniciar a string assim pode char str1[15] = “Hello World”; str1 = “Teste”; // Assim NÃO pode!! strcpy(str1, “Teste”);
  • 25.
    • Funcões paratrabalhar com string? ▫ #include <string.h> strcpy(s1, s2); copia s1 em s2 strcat(s1, s2); concatena s2 no final de s2 strlen(s1); retorna o tamanho de s1 strcmp(s1, s2); retorna 0 se s1 e s2 são iguais, negativo se s1<s2, e positivo se s1>s2 s1 = gets(); lê um string digitada pelo usuário
  • 26.
    Definição :  Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando procedimento é chamado.  Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor.
  • 28.
  • 29.
    Exemplo : int SomaDoisNumeros(intA, int B) { return A + B; } void ImprimeTexto() { printf(“Ola Mundo”); }
  • 30.
    int SomaDoisNumeros(int A,int B) { return A + B; } int main() { int r; r = SomaDoisNumeros(30, 50); ImprimeTexto(); }
  • 31.
    Exercício: Escreva um procedimentoou função em linguagem C que recebe como parâmetros as duas notas da prova de um aluno e escreva se ele foi aprovado(>=70) ou reprovado(<70).
  • 32.
    • Um ponteiroe uma variavel que contem um endereco de memoria • Esse endereco normalmente e a posicao de uma outra variavel na memoria • Se uma variavel tem o endereco de outra, entao diz-se que a primeira aponta para a segunda
  • 33.
    Declaracao de umponteiro: char *p; Operadore de endereco: & char x; p = &x; // P recebe o endereço da variável x Operador de referencia: * *p = 10; // é o mesmo que x=10 char y; y = *p; // “y recebe o que está no endereço p”