Upload
ve-rodrigues
View
186
Download
2
Embed Size (px)
Citation preview
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 linguagem era prover acesso de baixo nível ao hardware (CPU, I/Os e periféricos), precisava ser portável para que o SO pudesse rodar em diferentes plataformas de hardware, além de ter um bom desempenho e otimizar o uso de memória;•Principalmente numa época em que estavam começando a surgir as primeiras CPUs, e o preço por byte de memória era caríssimo.
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 imprimeum texto na tela doseu 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
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 ("\n\n\n\t Os numeros que voce digitou foram:\n\n");
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 ("\n\n\n\t Os numeros que voce digitou foram:\n\n");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 DadosSegundo 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
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ícios1) 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 %d\n, 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
BibliografiaBásicaSchildt, H., C Completo e Total, Editora Makron Books do Brasil Editora Ltda, 1996.
ComplementarEvaristo, 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