Documente Academic
Documente Profesional
Documente Cultură
Volume 1
Recife, 2009
Universidade Federal Rural de Pernambuco
Apresentação.........................................................................................5
Considerações Finais..........................................................................96
Conhecendo a Autora..........................................................................97
Apresentação
Caro(a) cursista,
Este livro foi escrito pensando em você, que está iniciando neste mundo da
programação de computadores e que precisa ser apresentado, com tranquilidade, a um
conjunto de novos conceitos. Os assuntos serão transmitidos gradativamente, de forma
que você os absorva com naturalidade.
De antemão, informamos que programar é muito bom, você vai gostar! Nada melhor
do que ver um programa rodando e saber que foi você quem o criou. Mas, não desanime
se encontrar alguma dificuldade durante esta caminhada. Às vezes ocorre um erro no
programa e não sabemos onde está o problema. Seja persistente! Ao longo do tempo,
a experiência vai te deixar mais seguro e você conseguirá encontrar tais erros com
facilidade.
Bons estudos!
Conhecendo o Volume 1
Capítulo 1: Introdução ao C
» Linguagens de programação;
» Palavras reservadas do C;
» Uso de comentários;
» Fundamentos do ambiente C;
» Conhecendo o Dev-cpp.
6
Programação I
» Tipos de dados;
» Variáveis e constantes;
» Operador de atribuição;
» Entrada de dados;
» Saída de dados;
» Operadores ++ e --;
7
Programação I
» Conversão de tipos;
» Funções matemáticas.
8
Programação I
Capítulo 1 – Introdução ao C
9
Programação I
10
Programação I
11
Programação I
12
Programação I
13
Programação I
14
Programação I
» Programas estruturados;
15
Programação I
16
Programação I
Conheça Mais
17
Programação I
Vamos revisar?
18
Programação I
19
Programação I
Capítulo 2 – Conceitos
Preliminares para Programar
em C
20
Programação I
3. Programa principal;
21
Programação I
» Sequência de comandos.
1 #include <stdio.h>
2 main()
3 {
4 int num,c;
5 printf(“Cubo de um numero\n\n”);
7 scanf(“%d”,&num);
8 c = num*num*num;
9 printf(“\nCubo de %d = %d”,num,c);
10 getche();
11 }
22
Programação I
1 algoritmo “Cubo”
2 var
3 num, c: inteiro
4 inicio
5 escreval(“Cubo de um numero”)
6 escreva(“Digite o numero: “)
7 leia(num)
8 c <- num*num*num
9 escreval(“Cubo de “, num, “ = “, c)
10 fimalgoritmo
Sintaxe
23
Programação I
7
Do Inglês, O segundo item da estrutura de um programa C é a declaração
main significa
principal. Todo
das constantes, esse item é opcional, só constará no nosso programa,
programa C caso seja necessário. Veremos a declaração de constantes, em
começa a sua
execução a partir detalhes, no próximo capítulo. No exemplo 2.1 não foi necessário o
do programa
principal. Assim,
uso de constantes.
o programa
principal é uma O terceiro item da estrutura do programa C é o programa principal.
parte obrigatória
na estrutura de É no programa principal que colocaremos a sequência de comandos
um programa C. que deve ser executada para a solução do problema que desejamos
resolver. Nós devemos informar onde começa e termina o programa
principal. O programa principal inicia com: main()7, como mostra a linha
2, do exemplo 2.1. A sequência de comandos do programa principal é
delimitada por um par de chaves: { (abre chaves) e } (fecha chaves).
Saiba Mais As chaves que delimitam o corpo do programa principal8 aparecem
nas linhas 3 e 11, do exemplo 2.1. Fazendo uma comparação com
8
Chamamos o algoritmo do exemplo 2.2, as chaves fazem o papel do “inicio” e
de corpo do
programa “fimalgoritmo”, das linhas 4 e 10.
principal toda
a sequência Logo no início do programa principal, devem ser declaradas as
de comandos
que faz parte variáveis (que serão abordadas no próximo capítulo). A declaração
do programa
de variáveis é um item opcional, pode acontecer de não precisarmos
principal. Ou seja,
a sequência de declarar variáveis no nosso programa. No exemplo 2.1, a declaração
comando que
aparece entre de variáveis é feita na linha 4. Foram declaradas duas variáveis do
as chaves de
tipo inteiro: num e c. No algoritmo, exemplo 2.2, as variáveis são
abertura e término
do programa declaradas fora do programa principal, na seção de declaração de
principal.
variáveis (linhas 2 e 3).
24
Programação I
semântica que ditam como o programa deve ser escrito. Com isso,
dentro dessas regras, existe um conjunto de palavras que tem um
significado para a linguagem de programação – são as palavras
reservadas. Uma palavra reservada é, essencialmente, um comando
e, na maioria das vezes, as palavras reservadas de uma linguagem
definem o que pode ser feito e como pode ser feito.
nossos
alívio! Assim que uma palavra ficar em negrito no nosso programa, programas
utilizando boas
poderemos verificar se estamos utilizando-a de forma correta. práticas de
programação,
teremos como
resultado um
2.3. Uso de Comentários código fonte
mais legível e
um progama
Os comentários são utilizados para documentar um programa. A executável mais
seguro e eficiente.
colocação de comentários em um programa é uma das boas práticas Ao longo deste
de programação10. Os comentários irão facilitar o entendimento material serão
ensinadas boas
e manutenção de programas. Por exemplo, um programador é práticas de
programação.
responsável por desenvolver o sistema de controle de vendas
25
Programação I
Sintaxe
// texto do comentário
Sintaxe
/* texto do comentário
texto do comentário
texto do comentário */
26
Programação I
entre estes dois símbolos. Veja no exemplo 2.3, que nas linhas 2, 3,
e 4 aparece um comentário de bloco. Este tipo de comentário do
exemplo é utilizado para identificar quem é o programador quando
o programa foi feito e o que o programa faz. Devemos adotar este
tipo de comentário no início dos nossos programas. Assim, ao abrir
um programa, rapidamente, saberemos para que ele serve. Devemos
tomar cuidado para não esquecer o “*/” que fecha o comentário de
bloco.
1 #include <stdio.h>
3 Data: 09/03/2009
5 main()
6 {
8 printf(“Cubo de um numero\n\n”);
10 scanf(“%d”,&Num);
11 C = Num*Num*Num;
12 printf(“\nCubo de %d = %d”,Num,C);
13 getche();
14 }
27
Programação I
28
Programação I
Figura 2.3: Diretório contendo código objeto e o programa executável Saiba Mais
CPU é a sigla
12
As fases 5 e 6 consistem na execução do programa executável. para Central
Para dar início a execução de um programa, é necessário que o mesmo Processing
Unit, em Inglês,
esteja na memória principal do computador. Isto é feito na fase 5, pelo ou Unidade
Central de
carregador do programa. O carregador pega o programa executável Processamento.
que está armazenado no disco e o transfere para memória principal. A CPU é a parte
do computador
Assim que o programa está na memória principal do computador, ele que processa
as instruções
está pronto para ser executado. A execução de um programa é feita contidas em um
pela CPU12, que executa as instruções do programa, uma após a programa.
29
Programação I
30
Programação I
as seguintes opções:
31
Programação I
15
O erro de 4. Se der algum erro no programa, vejam as indicações de
compilação pode erro fornecidas pelo compilador15. Conserte os erros, salve o
não estar na linha
que o complilador arquivo e compile novamente. Isto deve ser feito até que seja
está indicando. O
erro poderá estar: apresentada uma mensagem indicando que o programa não
na linha que ele tem erros de compilação.
está indicando,
na linha
imediatamente 5. Se vocês acessarem o diretório que o arquivo do código fonte
acima, ou ainda,
foi armazenado, notarão que foi criado um arquivo com a
em linhas mais
acima (menos extensão .exe (com o mesmo nome do arquivo do código fonte).
comum de
acontecer). Este é programa executável. Para executá-lo, escolha a opção
Executar/Executar no Dev-cpp. Imediatamente, aparecerá a
janela de execução do programa, como mostra a Figura 2.5.
32
Programação I
33
Programação I
Conheça Mais
http://www2.eletronica.org/artigos/eletronica-digital/programando-em-c-
boas-praticas
http://www.uniqueness-template.com/devcpp/
Vamos revisar?
34
Programação I
35
Programação I
16
A linguagem Programas são feitos para manipular dados. Armazenar notas,
C não possui
o tipo lógico,
calcular médias, alterar um endereço, etc. Os dados são a essência
que armazena de um programa. Dados precisam ser armazenados e modificados
verdadeiro ou
falso. ao longo da execução do programa. Neste capítulo, iremos conhecer
os tipos de dados suportados pela linguagem C e aprender a definir
constantes e variáveis.
36
Programação I
-9.223.372.036.854.775.808
long 64 bits a
+9.223.372.036.854.775.807
Atenção
Qual a diferença entre cada um deles? A diferença entre os tipos
short, int e long é a quantidade de memória18 que é reservada para A memória
18
é a parte do
armazená-los. Veja como é simples: à medida que se utiliza mais computador que
memória, aumenta o intervalo do valor que pode ser armazenado. Por tem como função
o armazenamento
exemplo, para armazenar um dado do tipo short, são reservados 16 de dados. Quando
um dado vai ser
bits de memória. Com isso, o tipo short pode suportar um número armazenado,
inteiro no intervalo de -32.768 a +32.767, como apresentado na precisamos
reservar uma
tabela. Portanto, dependendo do valor que será armazenado, deve quantidade de
memória para
ser escolhido um tipo (short, int ou long) que comporte tal valor. Por isto.
exemplo, para armazenar a idade de um funcionário, o tipo short
é o mais adequado (já que a idade de uma pessoa é um valor que
raramente ultrapassa 100). No entanto, para armazenar a quantidade
de eleitores de uma cidade, deve-se usar o tipo int (note que em
muitas cidades, a quantidade de eleitores ultrapassará o maior valor
suportado pelo tipo short: 32.767). Para facilitar nosso estudo, neste
material, sempre será usado o tipo int para armazenar os dados
inteiros.
3.1.2. Real
37
Programação I
3.1.3. Caractere
3.1.4. Void
Em Inglês, void quer dizer vazio e é isto mesmo que o void é. Void
é um tipo que não armazena nada (um tanto esquisito, não é?). Este
tipo serve para indicar que um resultado não tem um tipo definido. Ele
é utilizado quando estamos definindo funções nos nossos programas.
Permite-nos desenvolver funções que não retornam nada e funções
que não têm parâmetros. Voltaremos a falar do tipo void no Volume 2,
no capítulo que aborda modularização.
38
Programação I
39
Programação I
3.2.1. Identificadores
40
Programação I
41
Programação I
Sintaxe
42
Programação I
Atenção
Sintaxe
43
Programação I
1 #define DIAS 7
2 #define PI 3.1416
44
Programação I
Sintaxe
Variavel = Valor;
Variavel_1 = Variavel_2;
Variavel = função;
45
Programação I
1 float Media, X, Y, Z;
2 int J, L, M, K, A, B;
3 char Letra;
4 Media = 7.5;
5 Letra = ’D’;
6 X = Y;
7 K = A + B;
8 Z = sqrt(4);
9 J = L = M = 10;
Saiba Mais Na linha 4, a variável Media recebeu 7.5 (para números reais,
devemos utilizar ponto ao invés de virgula, para separar a parte inteira
19
Onde aparece o da parte fracionária do número)19.
= do comando de
atribuição, nos
lemos: “recebe”. Na linha 5, temos uma atribuição para uma variável char com um
Assim, o
comando da linha
único caractere. Note que, neste caso, o valor que a variável receberá
4 do exemplo 3.3, vem entre apóstrofo. Assim, a variável Letra está recebendo D.
seria lido: “Media
recebe 7.5”.
Atenção
46
Programação I
47
Programação I
float MEDIA, K, L;
( ) SOMA = NUM + 2;
( ) MEDIA = SOMA;
( ) NUM = K + L;
( ) X = X + 1
( ) L = SOMA - K;
( ) S = SOMA;
( ) X = SOMA - NUM;
Conheça Mais
48
Programação I
Vamos revisar?
Vamos fazer uma revisão do assunto que foi visto neste capítulo,
fazendo a leitura do resumo a seguir:
49
Programação I
Capítulo 4 – Comandos de
Entrada e Saída de Dados
50
Programação I
Sintaxe
%c leitura de um caractere
Saiba Mais
%s leitura de cadeia de caracteres
Nós acessamos
21
Assim, quando formos ler um dado que vai ser armazenado em uma variável
através do seu
uma variável do tipo inteiro, a string de controle deve ser “%d”. Se nome. No entanto,
o processador
o valor a ser lido, for um número real, a string de controle será “%f”. acessa uma
Quando o dado a ser lido for um único caractere, a string de controle variável utilizando
o endereço de
é “%c” e para ler uma cadeia de caracteres, é utilizado “%s”. Com a memória dela.
Cada variável
resolução de exercícios, vocês não esquecerão o significado de cada criada no nosso
string de controle, certo? programa possui
um endereço de
memória. Nós
Na segunda parte do scanf, colocamos o nome da variável que não precisamos
vai armazenar o valor que será fornecido via teclado, entendido? conhecer o
endereço de
Notem que antes do nome da variável, aparece um & (e-comercial). memória de uma
variável, certo?
O & faz parte da sintaxe do scanf e não pode ser esquecido. NUNCA! Só precisamos
Na linguagem C, o & significa: “Endereço de memória”21. Assim, saber o nome
dela.
o comando scanf indica que o dado será lido via teclado e será
51
Programação I
1 int idade;
2 float salario;
4 scanf(“%d”, &idade);
5 scanf(“%f”, &salario);
6 scanf(“%c”, &letra);
52
Programação I
Sintaxe
fflush(stdin);
gets(variável);
53
Programação I
Atenção
2 fflush(stdin);
3 gets(nome_aluno);
4 fflush(stdin);
5 gets(endereco);
54
Programação I
Sintaxe
printf(“string de controle”);
55
Programação I
\t tabulação (tab)
\a Dá um alerta sonoro
1 printf(“Ola Mundo!”);
2 printf(“\nBom Dia...”);
3 printf(“\n\nIsso eh um teste.\a”);
Saiba Mais
22
A tela tem
as seguintes Figura 4.4: Tela de execução de um programa: uso do printf
dimensões: 80
colunas x 25
linha. Assim,
conseguimos
Vamos entender cada printf do exemplo 4.3. Um detalhe essencial
escrever 80 que devemos saber: o printf escreve um texto na tela, a partir do ponto
caracteres em
uma linha de tela. em que o cursor se encontra no momento. Quando um programa
E conseguimos
ter uma tela com
é executado, o cursor se encontra na primeira coluna, da primeira
até 25 linhas. linha da tela22. No primeiro printf do exemplo, a string de controle tem
56
Programação I
%c Escrever um caractere
57
Programação I
2 float A;
3 X = 1;
4 Y = 3;
5 A = 7.5;
6 mat = 123;
7 idade = 25;
58
Programação I
Figura 4.5: Tela de execução de um programa usando printf com textos e valores
Vamos ver agora como fazer para que nossos números reais sejam
apresentados com a quantidade de casa decimais que quisermos. O
que vai mudar é o especificador de formato dos números reais, o “%f”.
Agora ele deve ser assim: entre o “%” e o “f”, colocaremos um ponto,
59
Programação I
1 float A, B,C;
2 A = 3.4;
3 B = 1.12345;
4 C = 7.56789;
60
Programação I
Nesta seção, será apresentada uma lista com os erros que são
mais frequentemente cometidos por quem está iniciando a programar,
e que precisa ficar atento a tantos detalhes da sintaxe dos comandos.
Vamos ver, na tabela abaixo, os erros que podemos cometer no uso
do scanf, gets e printf.
61
Programação I
62
Programação I
Atenção
63
Programação I
2 main()
3 {
7 scanf(“%d”, &n1);
9 scanf(“%d”, &n2);
10 soma = n1 + n2;
12 system(“pause”);
13 }
64
Programação I
65
Programação I
1 #include <stdio.h>
3 main()
4 {
5 char nome[20];
9 fflush(stdin);
10 gets(nome);
12 scanf(“%d”, &ano);
15 getche();
16 }
66
Programação I
» Linha 11: printf para que o usuário saiba que precisa fornecer o
ano de nascimento.
67
Programação I
68
Programação I
Conheça Mais
69
Programação I
Vamos revisar?
Para dar uma revisada nos tópicos tratados neste capítulo, leiam o
resumo a seguir:
70
Programação I
Capítulo 5 – Operadores,
Expressões e Funções
Matemáticas
Operador Descrição
+ Adição
- Subtração
* Multiplicação
71
Programação I
/ Divisão
() Parênteses
real/real real
1 int X, Y, Z, W;
2 float K, L, M;
3 X = 19;
4 Y = 3;
5 Z = X/Y;
6 W = X % Y;
7 K = 19;
8 L = 3;
9 M = K/L;
72
Programação I
Atenção
73
Programação I
74
Programação I
Prioridade Operador
1 int X, Y, Z, W, A, B, C, D;
2 X = 19;
3 Y = 3;
4 Z = 4;
5 W = 2;
6 A = X + Y * Z;
7 B = (X + Y) * Z;
8 C = X – Y * Z / W;
9 D = (X-Y) * (Z/W);
75
Programação I
76
Programação I
Operador Descrição
== Igualdade
!= Diferença (≠)
< Menor
> Maior
Sintaxe
1 X == 10
2 X > Y
3 X < Y + Z
4 X * Y > Z / W
77
Programação I
1 X == 10 => 1 == 10 => F
78
Programação I
E &&
OU ||
NÃO !
V V V
V F F
F V F
F F F
79
Programação I
V V V
V F V
F V V
F F F
80
Programação I
2 (A < 3) || (B < 2)
V F
F V
2 !(Y == 10)
81
Programação I
3 !(A == 1) || (B <= C + B)
Prioridade Operador
4º Operadores Relacionais;
5º Operadores Lógicos.
82
Programação I
+= X += 4; Equivale a X = X + 4;
-= Y -= X; Equivale a Y = Y – X;
*= Z *= W; Equivale a Z = Z * W;
/= K /= 7; Equivale a K = K / 7;
%= L %= M; Equivale a L = L % M
5.3. Operadores ++ e --
++ X++; Equivale a X = X + 1;
-- Y--; Equivale a Y = Y -- 1;
83
Programação I
84
Programação I
1 int A,B,C;
2 float X,Y;
3 A=3;
4 B=5;
5 X=6.5;
6 C = (int)X % B;
7 Y = (float)A/B;
85
Programação I
86
Programação I
Atenção
Programas Resolvidos
87
Programação I
1 #include <stdio.h>
3 main()
4 {
5 char nome[20];
9 fflush(stdin);
10 gets(nome);
11 printf(“Nota 1: “);
12 scanf(“%f”, ¬a1);
13 printf(“Nota 2: “);
14 scanf(“%f”, ¬a2);
17 getche();
18 }
88
Programação I
» Linha 11: printf para que o usuário saiba que precisa fornecer a
primeira nota.
» Linha 13: printf para que o usuário saiba que precisa fornecer
a segunda nota.
89
Programação I
1 #include <math.h>
3 main()
4 {
7 printf(“Numero: “);
8 scanf(“%f”, &num);
9 raiz = sqrt(num);
11 getche();
12 }
90
Programação I
» Linha 11: comando getche que faz com que a tela de execução
do programa fique aberta, e assim podemos ver o resultado do
programa.
91
Programação I
0 2 10 0 7 4 80 -1 -4
1) X = TOTAL/NOTA; 6) K += 9;
2) X = X+1; 7) Z = J / 5;
3) NOTA = X; 8) K = I % 5;
A B C D E
10 3 2 2 25
a) A == D
92
Programação I
d) (D*E>100) || (B<5)
93
Programação I
Notas de R$ 100,00: 3
Notas de R$ 50,00: 1
Notas de R$ 20,00: 1
Notas de R$ 10,00: 1
Conheça Mais
http://visualcplus.blogspot.com/2006/03/mathh.html
Vamos revisar?
94
Programação I
Referências
95
Programação I
Considerações Finais
96
Programação I
Conhecendo a Autora
97