Prof. Adriano Teixeira de Souza
   Ex-acadêmico da Fasul
   Especialista em Desenvolvimento de Software
    e Novas Tecnologias - Unioeste
   Analista de Sistemas na C.Vale Agroindústria
   Desenvolvedor nas plataformas Java e .Net




                        Prof. Adriano Teixeira de Souza
   Nome
   Cidade
   Em que área trabalha
   Que tecnologias utiliza no dia-a-dia
   Expectativas para a disciplina




                         Prof. Adriano Teixeira de Souza
   Ementa
    ◦ Estrutura de dados primitivas:
      Pilhas, listas, árvores
    ◦ Algoritmos de manipulação de estrutura de dados:
      Inserção, eliminação, busca e percurso
    ◦ Algoritmos de ordenação de dados
      Quick sort, Bouble sort, Merge sort e Heap sort
    ◦ Algoritmos de pesquisa
      Busca binária e busca linear
    ◦ Medidas de complexidade algorítmicas
    ◦ Desenvolvimento com utilização de estrutura de
      dados


                                 Prof. Adriano Teixeira de Souza
   Utilização da linguagem C
   Aulas práticas
   Listas de exercícios
   Discussão do conteúdo
   Trabalhos
   Avaliação bimestral
   Nota
    ◦ Avaliação bimestral (Peso de 50%)
    ◦ Trabalhos e listas de exercícios (peso de 35% )
    ◦ Participação e envolvimento em sala (peso 15%)



                            Prof. Adriano Teixeira de Souza
   Portabilidade entre máquinas e sistemas
    operacionais
   Total iteração com o sistema operacional
   Código compacto e rápido
   Linguagem compilada
   C é “case sensitive”




                        Prof. Adriano Teixeira de Souza
/* Primeiro Programa em C */                     comentários
#include <stdio.h>                      biblioteca de E/S


main()                         função principal/inicio
{                               marca início da função


    printf(“Meu primeiro programa em Cn”);
                      função para escrever na tela


}                                   marca fim da função




                     Prof. Adriano Teixeira de Souza
   Variável: “objeto” que pode assumir diversos
    valores
   Espaço de memória de um certo tipo de dado
    associado a um nome para referenciar seu
    conteúdo
main ( )
  {
     int idade;
     idade = 30;
     printf (“ A idade é : %d”, idade);
  }


                        Prof. Adriano Teixeira de Souza
   Quantos caracteres quiser (32)

   Comece com letras ou sublinhado:
    ◦ Seguidos de letras, números ou sublinhados

   C é sensível ao caso:
    ◦ Peso   <>     peso   <>        pEso

   Não podemos definir um identificador com o
    mesmo nome que uma palavra chave
    ◦ auto static extern int long if while do


                            Prof. Adriano Teixeira de Souza
   Determina um conjunto de valores e as possíveis
    operações realizadas sobre os mesmos

   Informa a quantidade de memória (bytes)

        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



                            Prof. Adriano Teixeira de Souza
#include <stdio.h>
main( )
{
   int soma=10;
   float money=2.21;
   char letra= ´A´;
   double pi=2.01E6;

    printf (“valor da soma = %dn”, soma);
    printf (“Valor de Money = %fn”, money);
    printf(“Valor de Letra = %cn”, letra);
    printf(“Valor de Pi = %en”, pi);

}


                         Prof. Adriano Teixeira de Souza
Saída de
 Entrada    Processamento de                     Dados
de Dados          dados




           Instruções de E/S




                   Prof. Adriano Teixeira de Souza
   Apresentação de dados no monitor
   printf(“string de controle”, lista de argumentos);

Exemplo:

printf (“Digite a sua idade:n”);
scanf (“%d”, &idade);
printf(“Sua idade é: %d”, idade);




                          Prof. Adriano Teixeira de Souza
%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




                          Prof. Adriano Teixeira de Souza
   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 primeiro byte por ela
    ocupado

Ex :
 inteiro -> 2 bytes
 float -> 4 bytes
 char -> 1 byte


                        Prof. Adriano Teixeira de Souza
   Quando usamos & precedendo uma variável
     estamos falando do endereço desta variável
     na memória

                  Saída: valor = 2, endereço = 1230
                  Varia conforme memória da máquina
Ex:
main ( )
{
   int num;
   num = 2;
   printf (“valor = %d, endereço = %Iu”, num,&num);
}

                          Prof. Adriano Teixeira de Souza
Operador            Ação
   +               Adição
   *            Multiplicação
   /              Divisão
   %       Resto da divisão inteira

   -         Subtração (unário)
   --           Decremento
  ++            Incremento

               Prof. Adriano Teixeira de Souza
Operador            Ação
   >              Maior que
  >=         Maior ou igual que
   <              Menor que
  <=        Menor ou igual que
  ==                Igual a
   !=            Diferente de
   &&           Condição “E”
   ||          Condição “OU”
   !                  Não



           Prof. Adriano Teixeira de Souza
   Em C o resultado da comparação será ZERO
    se resultar em FALSO e DIFERENTE DE ZERO
    no caso de obtermos VERDADEIRO num teste
    qualquer.




                      Prof. Adriano Teixeira de Souza
#include <stdio.h>
main ( )         Saída: Verd.=1        Falso = 0
{
  int verdadeiro, falso;

    verdadeiro = (15 < 20);
    falso = (15 == 20);
    printf(“Verd.= %d,Falso= %d”,
    verdadeiro, falso);
}


                      Prof. Adriano Teixeira de Souza
   Observemos antes de mais nada que ++x é
    diferente de x++!

Se                           porém Se
    x = 10;                    x = 10;
    y = ++x;                   y = x++;
    /* x=x+1;   y=x; */        /* y=x;        x=x+1 */
                             então
então                          x = 11 e
  x = 11 e                     y = 10
    y = 11




                          Prof. Adriano Teixeira de Souza
   1) Faça um programa para ler e escrever na
    tela o seu nome e a sua idade.

   2) Faça um programa para ler e escrever na
    tela os seguintes dados:
    ◦   Nome
    ◦   Endereço
    ◦   Telefone
    ◦   Cidade
    ◦   Cep




                        Prof. Adriano Teixeira de Souza
   3) Entre com 3 números, verifique qual o
    maior dentre os valores informados e
    imprima na tela a frase “o maior número é X”
    ◦ Onde X é a variável contendo o maior valor

   4) Entre com 2 números e apresente-os de
    forma ordenada




                            Prof. Adriano Teixeira de Souza

Estrutura de dados - Introdução a linguagem C

  • 1.
  • 2.
    Ex-acadêmico da Fasul  Especialista em Desenvolvimento de Software e Novas Tecnologias - Unioeste  Analista de Sistemas na C.Vale Agroindústria  Desenvolvedor nas plataformas Java e .Net Prof. Adriano Teixeira de Souza
  • 3.
    Nome  Cidade  Em que área trabalha  Que tecnologias utiliza no dia-a-dia  Expectativas para a disciplina Prof. Adriano Teixeira de Souza
  • 4.
    Ementa ◦ Estrutura de dados primitivas:  Pilhas, listas, árvores ◦ Algoritmos de manipulação de estrutura de dados:  Inserção, eliminação, busca e percurso ◦ Algoritmos de ordenação de dados  Quick sort, Bouble sort, Merge sort e Heap sort ◦ Algoritmos de pesquisa  Busca binária e busca linear ◦ Medidas de complexidade algorítmicas ◦ Desenvolvimento com utilização de estrutura de dados Prof. Adriano Teixeira de Souza
  • 5.
    Utilização da linguagem C  Aulas práticas  Listas de exercícios  Discussão do conteúdo  Trabalhos  Avaliação bimestral  Nota ◦ Avaliação bimestral (Peso de 50%) ◦ Trabalhos e listas de exercícios (peso de 35% ) ◦ Participação e envolvimento em sala (peso 15%) Prof. Adriano Teixeira de Souza
  • 6.
    Portabilidade entre máquinas e sistemas operacionais  Total iteração com o sistema operacional  Código compacto e rápido  Linguagem compilada  C é “case sensitive” Prof. Adriano Teixeira de Souza
  • 7.
    /* Primeiro Programaem C */ comentários #include <stdio.h> biblioteca de E/S main() função principal/inicio { marca início da função printf(“Meu primeiro programa em Cn”); função para escrever na tela } marca fim da função Prof. Adriano Teixeira de Souza
  • 8.
    Variável: “objeto” que pode assumir diversos valores  Espaço de memória de um certo tipo de dado associado a um nome para referenciar seu conteúdo main ( ) { int idade; idade = 30; printf (“ A idade é : %d”, idade); } Prof. Adriano Teixeira de Souza
  • 9.
    Quantos caracteres quiser (32)  Comece com letras ou sublinhado: ◦ Seguidos de letras, números ou sublinhados  C é sensível ao caso: ◦ Peso <> peso <> pEso  Não podemos definir um identificador com o mesmo nome que uma palavra chave ◦ auto static extern int long if while do Prof. Adriano Teixeira de Souza
  • 10.
    Determina um conjunto de valores e as possíveis operações realizadas sobre os mesmos  Informa a quantidade de memória (bytes) 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 Prof. Adriano Teixeira de Souza
  • 11.
    #include <stdio.h> main( ) { int soma=10; float money=2.21; char letra= ´A´; double pi=2.01E6; printf (“valor da soma = %dn”, soma); printf (“Valor de Money = %fn”, money); printf(“Valor de Letra = %cn”, letra); printf(“Valor de Pi = %en”, pi); } Prof. Adriano Teixeira de Souza
  • 12.
    Saída de Entrada Processamento de Dados de Dados dados Instruções de E/S Prof. Adriano Teixeira de Souza
  • 13.
    Apresentação de dados no monitor  printf(“string de controle”, lista de argumentos); Exemplo: printf (“Digite a sua idade:n”); scanf (“%d”, &idade); printf(“Sua idade é: %d”, idade); Prof. Adriano Teixeira de Souza
  • 14.
    %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 Prof. Adriano Teixeira de Souza
  • 15.
    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 primeiro byte por ela ocupado Ex : inteiro -> 2 bytes float -> 4 bytes char -> 1 byte Prof. Adriano Teixeira de Souza
  • 16.
    Quando usamos & precedendo uma variável estamos falando do endereço desta variável na memória Saída: valor = 2, endereço = 1230 Varia conforme memória da máquina Ex: main ( ) { int num; num = 2; printf (“valor = %d, endereço = %Iu”, num,&num); } Prof. Adriano Teixeira de Souza
  • 17.
    Operador Ação + Adição * Multiplicação / Divisão % Resto da divisão inteira - Subtração (unário) -- Decremento ++ Incremento Prof. Adriano Teixeira de Souza
  • 18.
    Operador Ação > Maior que >= Maior ou igual que < Menor que <= Menor ou igual que == Igual a != Diferente de && Condição “E” || Condição “OU” ! Não Prof. Adriano Teixeira de Souza
  • 19.
    Em C o resultado da comparação será ZERO se resultar em FALSO e DIFERENTE DE ZERO no caso de obtermos VERDADEIRO num teste qualquer. Prof. Adriano Teixeira de Souza
  • 20.
    #include <stdio.h> main () Saída: Verd.=1 Falso = 0 { int verdadeiro, falso; verdadeiro = (15 < 20); falso = (15 == 20); printf(“Verd.= %d,Falso= %d”, verdadeiro, falso); } Prof. Adriano Teixeira de Souza
  • 21.
    Observemos antes de mais nada que ++x é diferente de x++! Se porém Se x = 10; x = 10; y = ++x; y = x++; /* x=x+1; y=x; */ /* y=x; x=x+1 */ então então x = 11 e x = 11 e y = 10 y = 11 Prof. Adriano Teixeira de Souza
  • 22.
    1) Faça um programa para ler e escrever na tela o seu nome e a sua idade.  2) Faça um programa para ler e escrever na tela os seguintes dados: ◦ Nome ◦ Endereço ◦ Telefone ◦ Cidade ◦ Cep Prof. Adriano Teixeira de Souza
  • 23.
    3) Entre com 3 números, verifique qual o maior dentre os valores informados e imprima na tela a frase “o maior número é X” ◦ Onde X é a variável contendo o maior valor  4) Entre com 2 números e apresente-os de forma ordenada Prof. Adriano Teixeira de Souza