SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Estrutura de Dados
Linguagem C
Profª Ms. Eveline B. Rodrigues
1
Conteúdo da aula de hoje:
• Introdução sobre a linguagem C
• Variáveis
• Vetores
• Lista
• Fila
• Pilha
2
Linguagem C
• Criada por Dennis M. Ritchie e Ken Thompson
no laboratório Bell, em 1972.
• Baseada na Linguagem B de Thompson.
Ken Thompson e Dennis Ritchie em 1984
3
Linguagem C
Por que desenvolveram a linguagem C?
•O objetivo da lin­guagem era prover acesso de baixo
nível ao hard­ware (CPU, I/Os e per­iféri­cos), pre­
cisava ser portável para que o SO pudesse rodar em
difer­entes platafor­mas de hard­ware, além de ter um
bom desem­penho e otimizar o uso de memória;
•Prin­ci­pal­mente numa época em que estavam
começando a sur­gir as primeiras CPUs, e o preço por
byte de memória era carís­simo.
4
Linguagem C
O que podemos fazer com a linguagem C?
•Programação de qualquer tipo de sistema:
▫ Sistemas Operacionais (como o UNIX);
▫ Planilhas eletrônicas;
▫ Processadores de texto;
▫ Gerenciadores de BD;
▫ Processadores gráficos;
5
Linguagem C
• A linguagem C continua a ser largamente
utilizada no desenvolvimento de aplicações e
sistemas operacionais e a sua influência pode ser
vista em linguagens de programação mais
recentes, tais como C++, Java, C#, PHP e
JavaScript.
6
Linguagem C
• C é recomendada para aplicações de missão
critica, ou seja, que exige respostas rápidas, ex:
▫ servidores de aplicação;
▫ drivers;
▫ kernels de S.O.
7
Compilador C
• Maneira de comunicar com o computador:
programa;
• Linguagem que o computador entende:
linguagem de máquina;
• Os programas em C são traduzidos para
linguagem de máquina através de um
compilador.
8
Compilador C
• O ser humano compreende a linguagem natural
(português, inglês, ...), enquanto que o
computador entende a linguagem de máquina
(binária – 0 e 1)
9
compilador
Compilador C
• Lê cada instrução do programa e se não houver
erro converte-a para linguagem de máquina;
• O compilador gera um programa em disco com
o sufixo .OBJ com as instruções traduzidas.
• A este arquivo são agregadas rotinas em
linguagem de máquina que permitirão sua
execução, criando um produto final em disco
com sufixo .EXE.
10
Estrutura básica de um programa em C
• Um programa em C consiste em uma ou
várias funções.
• Vamos começar pelo menor programa
possível em C:
main( )
{
printf ( “primeiro programa”);
}
primeira função a ser executada.
inicia o corpo da função
termina a função
função que imprime
um texto na tela do
seu computador
11
Estrutura básica de um programa em C
• Programas de computador devem
poder ler e receber informações
• Como essas informações são
armazenadas?
12
Variáveis
• Aspecto fundamental de qualquer linguagem de
computador;
• É um espaço de memória reservado para
armazenar um certo tipo de dado;
• Tem um nome para que seu conteúdo possa ser
referenciado.
13
Variáveis
• É um espaço de memória que pode conter, a
cada tempo, valores diferentes;
14
Exemplo de Variável
main( )
{
int num;
num=2;
printf(“Este é o número dois: %d”, num);
}
15
16
Vetores
• Vetores são uma estrutura de dados muito
utilizada.
• Os vetores possuem todos os elementos
pertencentes ao mesmo tipo de dado.
• Para se declarar um vetor podemos utilizar a
seguinte forma geral:
tipo_da_variável nome_da_variável [tamanho];
17
Vetores
• Quando o C vê uma declaração como esta ele
reserva um espaço na memória suficientemente
grande para armazenar o número de células
especificadas em tamanho. Por exemplo, se
declararmos:
float nota[20];
18
Vetores
• o C irá reservar 4x20=80 bytes.
• Estes bytes são reservados de maneira contínua. Na linguagem C a
numeração começa sempre em zero.
• Isto significa que, no exemplo acima, os dados serão indexados de 0
a 19. Para acessá-los vamos escrever:
nota[0]
nota[1]
.
.
.
nota[19]
19
Exemplo 1
#include <stdio.h>
void main ()
{
int num[100]; /* Declara um vetor de inteiros de 100 posicoes */
for(cont=0;cont<100;cont++)
{
printf ("nEntre com um numero %d “, cont);
scanf ("%d", &num[count]);
}
printf ("nnnt Os numeros que voce digitou foram:nn");
for (count=0;count<100;count++)
{
printf (“Nro: %d", num[count]);
}
}
20
Exemplo 2
#include <stdio.h>
void main ()
{
int num[100]; /* Declara um vetor de inteiros de 100 posicoes */
int count=0;
int totalnums;
do
{
printf ("nEntre com um numero (-999 p/ terminar): ");
scanf ("%d", &num[count]);
count++;
} while (num[count-1]!=-999);
totalnums=count-1;
printf ("nnnt Os numeros que voce digitou foram:nn");
for (count=0;count<totalnums;count++)
{
printf (" %d", num[count]);
}
}
21
Exercício
• Reescreva o exemplo anterior, realizando a cada
leitura um teste para ver se a dimensão do vetor
não foi ultrapassada. Caso o usuário entre com
100 números, o programa deverá abortar o loop
de leitura automaticamente. O uso do Flag não
deve ser retirado.
22
Estrutura de Dados
Segundo o professor da COPPE/UFRJ, Jayme Luiz Szwarcfiter, em seu livro
Estruturas de Dados e seus Algoritmos:
“As estruturas diferem uma das outras pela disposição ou manipulação
de seus dados. A disposição de dados em uma estrutura obedece a
condições preestabelecidas e caracteriza a estrutura.
O estudo de estrutura de dados não pode ser desvinculado de seus
aspectos algoritmos. A escolha certa da estrutura adequada a cada caso
depende diretamente do conhecimento de algoritmos para manipular a
estrutura de maneira diferente.”
23
Listas
• Uma lista encadeada é uma representação de
uma sequência de objetos na memória do
computador.
• Cada elemento da sequência é armazenado em
uma célula da lista: o primeiro elemento na
primeira célula, o segundo na segunda e assim
por diante.
24
Listas
25
• Os elementos em uma lista são acessados em
qualquer ordem (acesso randômico).
Filas
• Filas nada mais são que estruturas lineares de
informação que são acessadas na ordem FIFO (primeiro
que entra é o primeiro a sair).
• O primeiro item colocado na Fila é o primeiro item a ser
recuperado, e assim por diante.
• Uma característica especial da fila é não permitir o
acesso randômico a seus dados.
26
1° 2° 3°
Pilhas
• Uma Pilha é o contrário de uma Fila porque usa o
acesso LIFO (o último a entrar é o primeiro a sair).
• Imagine uma pilha de provas para serem corrigidas
por um certo professor.
• A prova da base da pilha será a última a ser corrigida
pelo professor e a prova do topo será a primeira a ser
corrigida.
27
3° 2° 1°
Exercícios
1) Um dos alunos preparou o seguinte programa e o apresentou para ser avaliado.
Ajude-0.
main{}
(
printf(Existem %d semanas no ano., 56);
)
2) O programa seguinte tem vários erros em tempo de compilação. Execute-o e
observe as mensagens apresentadas por seu compilador.
Main()
{
int a=1; b=2, c=3;
printf(“Os numeros são: %d %d %dn, a,b,c,d)
}
28
Exercícios
3) Qual será a saída do programa abaixo:
main()
{
printf(“%s n %s n %s”, “um”, “dois”, “tres”);
}
29
Bibliografia
Básica
Schildt, H., C Completo e Total, Editora Makron Books do Brasil
Editora Ltda, 1996.
Complementar
Evaristo, J., Aprendendo a programar programando em
linguagem C, Book Express, 2001.
Mizrahi, V. V., Treinamento em Linguagem C, Curso Completo,
Módulos 1 e 2, Makron Books do Brasil Editora Ltda,1990.
Kernighan, B.W & Ritchie, D. M., C a Linguagem de
Programação, Editora Campus, 1986.
Liberty, Jesse, Aprenda em 24 horas C++, Editora Campus,
1998.
30

Weitere ähnliche Inhalte

Was ist angesagt?

Microsserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMMicrosserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMRicardo Terra
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Lucas Castro
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiaisJosh Santos
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasLeinylson Fontinele
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
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
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaSérgio Souza Costa
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlex Camargo
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoesLeandro Barbosa
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivosLeandro Barbosa
 

Was ist angesagt? (20)

Microsserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMMicrosserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORM
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Estruturas
EstruturasEstruturas
Estruturas
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
 
Tutorial R
Tutorial RTutorial R
Tutorial R
 
Introdução ao R
Introdução ao RIntrodução ao R
Introdução ao R
 
C 1
C 1C 1
C 1
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
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
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
LaTeX Básico II
LaTeX Básico IILaTeX Básico II
LaTeX Básico II
 
Introdução ao LaTeX
Introdução ao LaTeXIntrodução ao LaTeX
Introdução ao LaTeX
 
Algoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de stringsAlgoritmos e Programação: Manipulação de strings
Algoritmos e Programação: Manipulação de strings
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
013 programando em python - arquivos
013   programando em python - arquivos013   programando em python - arquivos
013 programando em python - arquivos
 

Ähnlich wie Introdução à Linguagem C e Estruturas de Dados

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 CJoberthSilva
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Bianca Dantas
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoMonike Santos
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfEdkallenn Lima
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Lucas Antonio
 

Ähnlich wie Introdução à Linguagem C e Estruturas de Dados (20)

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
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a Programação
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdf
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Apostila c
Apostila cApostila c
Apostila c
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02
 

Introdução à Linguagem C e Estruturas de Dados

  • 1. Estrutura de Dados Linguagem C Profª Ms. Eveline B. Rodrigues 1
  • 2. Conteúdo da aula de hoje: • Introdução sobre a linguagem C • Variáveis • Vetores • Lista • Fila • Pilha 2
  • 3. Linguagem C • Criada por Dennis M. Ritchie e Ken Thompson no laboratório Bell, em 1972. • Baseada na Linguagem B de Thompson. Ken Thompson e Dennis Ritchie em 1984 3
  • 4. Linguagem C Por que desenvolveram a linguagem C? •O objetivo da lin­guagem era prover acesso de baixo nível ao hard­ware (CPU, I/Os e per­iféri­cos), pre­ cisava ser portável para que o SO pudesse rodar em difer­entes platafor­mas de hard­ware, além de ter um bom desem­penho e otimizar o uso de memória; •Prin­ci­pal­mente numa época em que estavam começando a sur­gir as primeiras CPUs, e o preço por byte de memória era carís­simo. 4
  • 5. Linguagem C O que podemos fazer com a linguagem C? •Programação de qualquer tipo de sistema: ▫ Sistemas Operacionais (como o UNIX); ▫ Planilhas eletrônicas; ▫ Processadores de texto; ▫ Gerenciadores de BD; ▫ Processadores gráficos; 5
  • 6. Linguagem C • A linguagem C continua a ser largamente utilizada no desenvolvimento de aplicações e sistemas operacionais e a sua influência pode ser vista em linguagens de programação mais recentes, tais como C++, Java, C#, PHP e JavaScript. 6
  • 7. Linguagem C • C é recomendada para aplicações de missão critica, ou seja, que exige respostas rápidas, ex: ▫ servidores de aplicação; ▫ drivers; ▫ kernels de S.O. 7
  • 8. Compilador C • Maneira de comunicar com o computador: programa; • Linguagem que o computador entende: linguagem de máquina; • Os programas em C são traduzidos para linguagem de máquina através de um compilador. 8
  • 9. Compilador C • O ser humano compreende a linguagem natural (português, inglês, ...), enquanto que o computador entende a linguagem de máquina (binária – 0 e 1) 9 compilador
  • 10. Compilador C • Lê cada instrução do programa e se não houver erro converte-a para linguagem de máquina; • O compilador gera um programa em disco com o sufixo .OBJ com as instruções traduzidas. • A este arquivo são agregadas rotinas em linguagem de máquina que permitirão sua execução, criando um produto final em disco com sufixo .EXE. 10
  • 11. Estrutura básica de um programa em C • Um programa em C consiste em uma ou várias funções. • Vamos começar pelo menor programa possível em C: main( ) { printf ( “primeiro programa”); } primeira função a ser executada. inicia o corpo da função termina a função função que imprime um texto na tela do seu computador 11
  • 12. Estrutura básica de um programa em C • Programas de computador devem poder ler e receber informações • Como essas informações são armazenadas? 12
  • 13. Variáveis • Aspecto fundamental de qualquer linguagem de computador; • É um espaço de memória reservado para armazenar um certo tipo de dado; • Tem um nome para que seu conteúdo possa ser referenciado. 13
  • 14. Variáveis • É um espaço de memória que pode conter, a cada tempo, valores diferentes; 14
  • 15. Exemplo de Variável main( ) { int num; num=2; printf(“Este é o número dois: %d”, num); } 15
  • 16. 16
  • 17. Vetores • Vetores são uma estrutura de dados muito utilizada. • Os vetores possuem todos os elementos pertencentes ao mesmo tipo de dado. • Para se declarar um vetor podemos utilizar a seguinte forma geral: tipo_da_variável nome_da_variável [tamanho]; 17
  • 18. Vetores • Quando o C vê uma declaração como esta ele reserva um espaço na memória suficientemente grande para armazenar o número de células especificadas em tamanho. Por exemplo, se declararmos: float nota[20]; 18
  • 19. Vetores • o C irá reservar 4x20=80 bytes. • Estes bytes são reservados de maneira contínua. Na linguagem C a numeração começa sempre em zero. • Isto significa que, no exemplo acima, os dados serão indexados de 0 a 19. Para acessá-los vamos escrever: nota[0] nota[1] . . . nota[19] 19
  • 20. Exemplo 1 #include <stdio.h> void main () { int num[100]; /* Declara um vetor de inteiros de 100 posicoes */ for(cont=0;cont<100;cont++) { printf ("nEntre com um numero %d “, cont); scanf ("%d", &num[count]); } printf ("nnnt Os numeros que voce digitou foram:nn"); for (count=0;count<100;count++) { printf (“Nro: %d", num[count]); } } 20
  • 21. Exemplo 2 #include <stdio.h> void main () { int num[100]; /* Declara um vetor de inteiros de 100 posicoes */ int count=0; int totalnums; do { printf ("nEntre com um numero (-999 p/ terminar): "); scanf ("%d", &num[count]); count++; } while (num[count-1]!=-999); totalnums=count-1; printf ("nnnt Os numeros que voce digitou foram:nn"); for (count=0;count<totalnums;count++) { printf (" %d", num[count]); } } 21
  • 22. Exercício • Reescreva o exemplo anterior, realizando a cada leitura um teste para ver se a dimensão do vetor não foi ultrapassada. Caso o usuário entre com 100 números, o programa deverá abortar o loop de leitura automaticamente. O uso do Flag não deve ser retirado. 22
  • 23. Estrutura de Dados Segundo o professor da COPPE/UFRJ, Jayme Luiz Szwarcfiter, em seu livro Estruturas de Dados e seus Algoritmos: “As estruturas diferem uma das outras pela disposição ou manipulação de seus dados. A disposição de dados em uma estrutura obedece a condições preestabelecidas e caracteriza a estrutura. O estudo de estrutura de dados não pode ser desvinculado de seus aspectos algoritmos. A escolha certa da estrutura adequada a cada caso depende diretamente do conhecimento de algoritmos para manipular a estrutura de maneira diferente.” 23
  • 24. Listas • Uma lista encadeada é uma representação de uma sequência de objetos na memória do computador. • Cada elemento da sequência é armazenado em uma célula da lista: o primeiro elemento na primeira célula, o segundo na segunda e assim por diante. 24
  • 25. Listas 25 • Os elementos em uma lista são acessados em qualquer ordem (acesso randômico).
  • 26. Filas • Filas nada mais são que estruturas lineares de informação que são acessadas na ordem FIFO (primeiro que entra é o primeiro a sair). • O primeiro item colocado na Fila é o primeiro item a ser recuperado, e assim por diante. • Uma característica especial da fila é não permitir o acesso randômico a seus dados. 26 1° 2° 3°
  • 27. Pilhas • Uma Pilha é o contrário de uma Fila porque usa o acesso LIFO (o último a entrar é o primeiro a sair). • Imagine uma pilha de provas para serem corrigidas por um certo professor. • A prova da base da pilha será a última a ser corrigida pelo professor e a prova do topo será a primeira a ser corrigida. 27 3° 2° 1°
  • 28. Exercícios 1) Um dos alunos preparou o seguinte programa e o apresentou para ser avaliado. Ajude-0. main{} ( printf(Existem %d semanas no ano., 56); ) 2) O programa seguinte tem vários erros em tempo de compilação. Execute-o e observe as mensagens apresentadas por seu compilador. Main() { int a=1; b=2, c=3; printf(“Os numeros são: %d %d %dn, a,b,c,d) } 28
  • 29. Exercícios 3) Qual será a saída do programa abaixo: main() { printf(“%s n %s n %s”, “um”, “dois”, “tres”); } 29
  • 30. Bibliografia Básica Schildt, H., C Completo e Total, Editora Makron Books do Brasil Editora Ltda, 1996. Complementar Evaristo, J., Aprendendo a programar programando em linguagem C, Book Express, 2001. Mizrahi, V. V., Treinamento em Linguagem C, Curso Completo, Módulos 1 e 2, Makron Books do Brasil Editora Ltda,1990. Kernighan, B.W & Ritchie, D. M., C a Linguagem de Programação, Editora Campus, 1986. Liberty, Jesse, Aprenda em 24 horas C++, Editora Campus, 1998. 30