Your SlideShare is downloading. ×
Introdução a Linguagem C
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introdução a Linguagem C

141
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
141
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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