SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programaçãoGustavo Nazário
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01Lucas Cabral
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07profwtelles
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03thomasdacosta
 
Introdução a programação gráfica com Processing - Aula 02
Introdução a programação gráfica com Processing - Aula 02Introdução a programação gráfica com Processing - Aula 02
Introdução a programação gráfica com Processing - Aula 02Lucas Cabral
 
Linguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio RufinoLinguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio RufinoAntonio Rufino
 
Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaAdriano Teixeira de Souza
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em PrologNatã Melo
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06thomasdacosta
 
Introdução a linguagem Swift
Introdução a linguagem SwiftIntrodução a linguagem Swift
Introdução a linguagem SwiftGabriel Rodrigues
 

Mais procurados (20)

Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
Php
PhpPhp
Php
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01Introdução a programação gráfica com Processing - Aula 01
Introdução a programação gráfica com Processing - Aula 01
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03
 
Introdução a programação gráfica com Processing - Aula 02
Introdução a programação gráfica com Processing - Aula 02Introdução a programação gráfica com Processing - Aula 02
Introdução a programação gráfica com Processing - Aula 02
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
Linguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio RufinoLinguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio Rufino
 
Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memória
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em Prolog
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Minicurso Prolog
Minicurso PrologMinicurso Prolog
Minicurso Prolog
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06
 
Introdução a linguagem Swift
Introdução a linguagem SwiftIntrodução a linguagem Swift
Introdução a linguagem Swift
 

Semelhante a Estrutura de Dados e Algoritmos com C

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6engenhariadecomputacao
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 
Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06thomasdacosta
 
Por que voce deveria documentar seu codigo?
Por que voce deveria documentar seu codigo?Por que voce deveria documentar seu codigo?
Por que voce deveria documentar seu codigo?Lennon Manchester
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03profwtelles
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
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
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayDilan Nery Lopes
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando CVinícius Hax
 

Semelhante a Estrutura de Dados e Algoritmos com C (20)

Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Ling c
Ling cLing c
Ling c
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6Algoritmo e lógica de programação - aula 6
Algoritmo e lógica de programação - aula 6
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Por que voce deveria documentar seu codigo?
Por que voce deveria documentar seu codigo?Por que voce deveria documentar seu codigo?
Por que voce deveria documentar seu codigo?
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
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
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDay
 
Python 02
Python 02Python 02
Python 02
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
programação c 8 9_aula
programação c 8 9_aulaprogramação c 8 9_aula
programação c 8 9_aula
 

Mais de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 

Mais de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 

Estrutura de Dados e Algoritmos com C

  • 2. 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
  • 3. 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
  • 4. 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
  • 5. /* 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. #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
  • 10. Saída de Entrada Processamento de Dados de Dados dados Instruções de E/S Prof. Adriano Teixeira de Souza
  • 11. 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
  • 12. %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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. #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
  • 19. 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
  • 20. 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
  • 21. 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