Académique Documents
Professionnel Documents
Culture Documents
curso bsico de C
Fundamentos da
Linguagem C
Prof. Carlos Gonalves
email: cavg@pop.com.br
DEINF - CCET - UFMA
So Lus, MA
Menu
TPICOS
18/05/15
curso bsico de C
Pr-Requisitos
Da aprovao
Bibliografia e recursos
Fundamentos de Linguagens
A Linguagem C
Estruturas de Dados Homogneas
Ponteiros
Anexos
Sobre
2003 Prof. Carlos Gonalves
Requisitos
Disciplina: Introduo Computao (60 h)
Acesso a um computador PC
Conhecimento de ambiente DOS/Windows
Compilador C instalado e rodando
Habilidade no uso de um PC
Livro sobre C ANSI ou equivalente
Cpias das Notas de Aulas e dos Textos do
Professor (vd. website do Prof.)
18/05/15
curso bsico de C
Da Aprovao na Disciplina
Freqncia: Presena em 75% da carga
horria
Mdia igual ou acima de 7,0 nos testes feitos
As notas sero assim atribudas:
18/05/15
curso bsico de C
18/05/15
curso bsico de C
1a.
Prova: dd/mmm/2003
2a. Prova: dd/mmm/2003
3a. Prova: dd/mmm/2003
Reposio: dd/mmm/2003
Final: dd/mm/2003!
18/05/15
curso bsico de C
ARAKAKI, Reginaldo et alii. Fundamentos de programao: C tcnicas e aplicaes. Rio de Janeiro: LTC Editora.
KERNIGHAN, Brian e Ritchie, Dennis. C: A linguagem de
programao-Padro ANSI. Ed. Campus: Rio de Janeiro.
SCHILDT, Herbert. C - Completo e Total. So Paulo: Makron Books.
SCHILDT, Herbert. Turbo C - Guia do Usurio. So Paulo: McGrawHill.
GHEZZI, Carlo e Jazayeri, Mehdi. Conceitos de linguagem de
programao. Ed. Campus: Rio de Janeiro.
MARTIN, James & McClure, Clara. Tcnicas estruturadas e CASE.
So Paulo: Makron, McGraw-Hill.
YOURDON, Edward. Administrando tcnicas estruturadas. Rio de
Janeiro: Campus.
BURGESS, Mark e Hale-Evans, Ron. The GNU C Programming
Tutorial. Free Software Foundation, Inc.
18/05/15
curso bsico de C
Sites na Internet
http://www.deinf.ufma.br/~cav ou ainda (para acesso
exterior a UFMA) http://cavg.vila.bol.com.br. Site do
Prof. da disciplina, inclui lista de exerccios, apostilas e
tutoriais, links, e outras informaes atualizadas.
http://www.portalc.nip.net. Site repleto de apostilas,
textos, tutoriais, programas-fontes e at compiladores
para a linguagem C e C++. Fundamental uma visita com
calma a fim de explorar bem o material. Possui links para
outros sites.
http://www.deinf.ufma.br/~cav/c-basico.zip. Link direto
para a apostila de Fundamentos de C, citada ao longo
desta apresentao, hospedada em servidor do
DEINF/UFMA.
Objetivos do Curso
Conceituar as linguagens de programao.
Tipos de linguagens: alto e baixo nvel,
genricas e especificas.
Histrico da criao da linguagem e a
descrio das caractersticas mais
importantes da linguagem C.
Aspecto geral de um cdigo-fonte escrito em
C.
Elaborar programas-fontes em C com
pequeno grau de complexidade, compil-los e
depur-los.
18/05/15
curso bsico de C
Sobre as Linguagens de
Programao
18/05/15
curso bsico de C
Um programa de computador um
conjunto de instrues que representam um
algoritmo para a resoluo de algum
problema. Estas instrues so escritas
atravs de um conjunto de cdigos
(smbolos e palavras). Este conjunto de
cdigos possui regras de estruturao
lgica e sinttica prpria. Diz-se que este
conjunto de smbolos e regras formam uma
linguagem de programao.
2003 Prof. Carlos Gonalves
18/05/15
curso bsico de C
BASIC
10 input num
20 for n=1 to 10
step 1
30 let tab=num*n
40 print chr$
(tab)
50 next n
10
18/05/15
curso bsico de C
FORTRAN 77
read (num)
do 10 n=1,10
tab=num*n
write(tab)
10 continue
11
18/05/15
curso bsico de C
12
18/05/15
curso bsico de C
C
scanf(&num);
for(n=1;n<=10;n+
+){
tab=num*n;
printf(\n %d,
tab);
};
13
18/05/15
curso bsico de C
14
18/05/15
curso bsico de C
15
Linguagens de A. N. Quanto a
Aplicao
As linguagens de alto nvel podem se
distinguir ainda quanto a sua
aplicao:
Genricas: como C, Pascal e Basic;
Especficas: como Fortran (clculo
matemtico), GPSS (simulao), LISP
(inteligncia artificial) ou CLIPPER
(banco de dados).
18/05/15
curso bsico de C
16
A Linguagem C: Consideraes
18/05/15
curso bsico de C
17
A Linguagem C: Caractersticas
18/05/15
curso bsico de C
18
A Linguagem C: Caractersticas
18/05/15
curso bsico de C
19
Linguagem C: Histrico-1/2
18/05/15
curso bsico de C
20
Linguagem C: Histrico-2/2
18/05/15
curso bsico de C
21
18/05/15
curso bsico de C
Um
22
18/05/15
curso bsico de C
Programa: e0101.cpp
Proposito: Calcula a raiz quadrada de um numero real positivo
maior que 1.0 com precisao PREC (0.00001).
Ultima Revisao: 16/06/97
******************************************************************* */
#define MAX 100
// precisao da raiz
float num
float raiz;
float inf, sup;
23
18/05/15
curso bsico de C
// inicializa contador
do{ // faca...
i = i + 1;
// incrementa contador
} while( (sup-inf) > PREC && i < MAX); // enquanto intervalo gde
24
// estima a raiz
18/05/15
curso bsico de C
printf("Raiz: %f +- %f",raiz,PREC);
}; // fim do programa1
25
18/05/15
curso bsico de C
Um programa-fonte em C um texto no
formatado escrito em um editor de textos usando
um o conjunto padro de caracteres ASCII. A
seguir esto os caracteres utilizados em C:
a b c d e f g h i j k l m n o p q r s
t u v w x y z
A B C D E F G H I J K L M N O P Q R S
T U V W X Y Z
1 2 3 4 5 6 7 8 9 0
+ - * / \ = | & ! ? # % ( ) { } [ ] _
. , : < >
2003 Prof. Carlos Gonalves
26
18/05/15
curso bsico de C
27
18/05/15
curso bsico de C
28
18/05/15
curso bsico de C
29
18/05/15
curso bsico de C
C
if(condio){
bloco 1;
}else{
bloco 2;
};
30
C
while(condio){
bloco;
};
18/05/15
curso bsico de C
31
18/05/15
curso bsico de C
C
for(inicializao;condio;incremento){
bloco;
};
32
18/05/15
curso bsico de C
33
18/05/15
curso bsico de C
34
18/05/15
curso bsico de C
O construto for do C altamente verstil, podendose usar inclusive comandos vazios no cabealho.
Por exemplo, a omisso das partes
inicializao e incremento, cria
essencialmente um lao while.
Exemplo:
int my_int = 1;
for ( ; my_int <= 20; )
{
printf ("%d ", my_int);
my_int++;
}
35
18/05/15
curso bsico de C
36
18/05/15
curso bsico de C
37
C: Funes do Usurio:
Declarao
18/05/15
curso bsico de C
38
C: Funes do Usurio:
Chamada ou Ativao
18/05/15
curso bsico de C
void main(){
float num1, num2, med;
puts(Digite dois nmeros:);
scanf(%f %f, &num1, &num2);
printf(\nA media dos numeros e %f,
media2(num1,num2));}
39
C: Funes do Usurio:
Declarada Antes de main()
18/05/15
curso bsico de C
#include <conio.h>
#include <stdio.h>
float media2(float a, float b){
float med;
med = (a + b) / 2.0;
return(med);}
Funo
declarada e
definida pelo
usurio.
void main(){
float num1, num2, med;
puts("Digite dois numeros: ");
scanf("%f %f", &num1, &num2);
med = media2(num1, num2);
// chamada a funcao
printf("\nA media destes numeros eh %f",med);}
40
C: Funes do Usurio:
Declarada Antes de main()-(cont.)
18/05/15
curso bsico de C
41
Estruturas de Dados
Homogneas: Vetores
Vetores so coleo de objetos que tm
mesma natureza, i.e., todos seus
elementos possuem um mesmo tipo bsico.
De fato, um vetor pode ser visto
conceitualmente como sendo equivalente a
uma matriz de dimenso 1 x m, onde m.
So chamados ainda de array, em ingls.
Os elementos de um vetor so identificados
pelo nome seguido de ndice entre
colchetes.
18/05/15
curso bsico de C
42
Estruturas de Dados
Homogneas: Vetores-(cont.)
18/05/15
curso bsico de C
li+1
li+2
ls-1
ls
43
Estruturas de Dados
Homogneas: Vetores-(cont.)
18/05/15
curso bsico de C
7,0
6,7
7,8
...
8,0
6,6
21
22
44
18/05/15
curso bsico de C
45
Vetores: Observaes
18/05/15
curso bsico de C
46
18/05/15
curso bsico de C
Matrizes
47
Matrizes: Declarao
18/05/15
curso bsico de C
tipo nome[tam_1][tam_2]...[tam_N;
onde:
48
18/05/15
curso bsico de C
Seja:
float notas[3][5];
Isto resultar na seguinte estrutura bidimensional
na RAM (teoricamente falando):
notas
0,0
0,1
0,2
0,3
0,4
1,0
1,1
1,2
1,3
1,4
2,0
2,1
2,2
2,3
2,4
49
18/05/15
curso bsico de C
{4.5,6.4,8.6,6.9,9.1}};
Isto
estrutura
bidimensional:
0,0resultar
0,1 na seguinte
0,2
0,3
0,4
7.4
5.7
5.6
7.7
notas8.4
1,0
1,1
6.9
2,0
1,2
2.7
2,1
4.5
1,3
4.9
2,2
6.4
1,4
4.5
2,3
8.6
8.7
2,4
6.9
9.1
50
18/05/15
curso bsico de C
onde:
nome_da_funo(nome_do_vetor)
nome_da_funo o nome da funo que se est
chamando.
51
18/05/15
curso bsico de C
... }
onde:
52
18/05/15
curso bsico de C
53
18/05/15
curso bsico de C
M)
E a chamada da funo:
void main(){
int valor[5][7]; //declarao do vetor
...
med = media(valor, n); //passagem do
vetor para a funo
... }
54
18/05/15
curso bsico de C
55
18/05/15
curso bsico de C
Ponteiros so variveis
que contm
endereos. Neste
sentido, estas
variveis apontam
para algum
determinado endereo
da memria. Em geral,
o ponteiro aponta para
o endereo de alguma
varivel j declarada
no programa.
Endereos
1000
Varivel
1003
1001
1002
1003
1004
1005
Memria
56
Ponteiros: Declarao
18/05/15
curso bsico de C
57
18/05/15
curso bsico de C
ou
58
18/05/15
curso bsico de C
int *p;
float* s_1, s_2;
59
18/05/15
curso bsico de C
60
18/05/15
curso bsico de C
scanf("%d", &num);
61
18/05/15
curso bsico de C
// declarao de ponteiro e
// atribuio
62
18/05/15
curso bsico de C
de
63
18/05/15
curso bsico de C
64
Ponteiros e Vetores
18/05/15
curso bsico de C
65
18/05/15
curso bsico de C
66
Ponteiros e Strings
Em C, uma string um vetor
unidimensional de elementos caracteres
ASCII, sendo o ultimo destes elementos o
caracter especial \0.
Sintaxe: As duas maneiras mais comuns de
declararmos uma string so:
18/05/15
curso bsico de C
onde:
67
18/05/15
curso bsico de C
68
18/05/15
curso bsico de C
69
18/05/15
curso bsico de C
Anexos
Glossrio
Sobre o Autor
70
Glossrio: ASCII
Acrnimo de American Standard Code for
Information Interchange. Um esquema de
codificao que atribui valores numricos
s letras, nmeros sinais de pontuao e
alguns smbolos especiais.
O ASCII tem 256 cdigos divididos em dois
conjuntos: bsico e estendido com 128
cdigos cada.
O ASCII permite que computadores e
programas troquem informaes entre si.
18/05/15
curso bsico de C
Voltar
71
Glossrio: Meta-Programas
18/05/15
curso bsico de C
Programas-tradutores:
72
18/05/15
curso bsico de C
73
Glossrio: Objetivos da PE
18/05/15
curso bsico de C
74
Nmero de
erros
descobertos
por unidade de
tempo
18/05/15
curso bsico de C
Glossrio: Objetivos da PE
Curva de
deteco de
erros
tempo
75
Glossrio: Objetivos da PE
Melhorar a confiabilidade dos programas
Aumentar a legibilidade dos programas
Minimizar a complexidade
Simplificar a manuteno
Aumentar a produtividade do programador
Estabelecer uma metodologia de
programao
Reduzir o custo de programao
18/05/15
curso bsico de C
76
18/05/15
curso bsico de C
Sobre o autor
Webpage:
www.deinf.ufma.br/~cav;
http://cavg.vila.bol.com.br;
(mirror)
emails:
cavg@bol.com.br;
cavg@pop.com.br;
77