Este curso tem como objetivo auxiliar os alunos na matria de algoritmos e programao. Ele
especifico para a matria. Alguns assuntos no sero abordados e outros so abordados de forma
resumida. A preocupao no com o conhecimento profundo da linguagem "C" e sim com o
desenvolvimento do raciocnio lgico. Vamos dividir o curso em etapas que devem ser seguidas
sequencialmente.
Etapas
1.
2.
3.
4.
Pgina 1 de 29
(fig. A01)
O arquivo devcpp.zip pode ser apagado.
D um "duplo clique" no arquivo (aplicativo) devcppPortable ( um aplicativo: arquivo .EXE)
Pgina 2 de 29
(fig. A02)
Na prxima tela apenas click em Next.
(fig. A03)
Pgina 3 de 29
(fig. A04)
Aps um rpido processamento deve aparecer a prxima tela e voc apenas clica no OK.
(fig. A05)
Pgina 4 de 29
Se tudo ocorreu conforme o esperado voc deve estar com a seguinte tela:
(fig. A06)
Observe a verso do "Dev". 5.6.3. Isso importante porque verses diferentes tem aparncia e
comportamento diferentes. Preste ateno na verso que voc est utilizando.
Finalmente para saber a instalao foi ok siga os seguintes passos: (Ateno os passos abaixo
sero utilizados para todos os programas que vamos fazer durante o curso).
Clique em Arquivo Novo Projeto conforme a tela abaixo:
(fig. A07)
Pgina 5 de 29
(fig. A08)
Ao clicar em "Ok" vai aparecer a tela solicitando onde salvar o arquivo "Projeto1.dev". Este arquivo
como o nome j indica contem informaes sobre o projeto que voc est construindo. Pode salvar
o projeto em qualquer pasta que desejar.
Aps salvar voc deve estar vendo a seguinte tela abaixo:
Pgina 6 de 29
(fig. A09)
Nesta tela podemos ver: Projeto1 - [Projeto1.dev] o nome do projeto e o nome do arquivo que
contm o projeto. A Seta na vertical mostra a parte da tela onde podemos gerenciar os programas
que pertencem ao projeto. Um projeto pode ter "n" programas. S que ns utilizaremos o projeto
com APENAS UM NICO PROGRAMA. Na parte direita da tela podemos ver: "[*] main.c". Bem
este o nosso PROGRAMA. Inicialmente o "DEV" coloca o nome do arquivo que contm o
programa como "main.c". ".C" a extenso para todo arquivo que contm um programa escrito na
"LINGUAGEM C". O "[*]" indica que o arquivo ainda no foi "SALVO". Devemos salvar o nosso
arquivo com outro nome diferente de "main.c". No momento da "compilao - execuo" do
programa o "DEV" vai solicitar que voc salve o arquivo (isso s vai acontecer na primeira vez para
cada projeto novo). Neste momento voc pode escolher um outro nome para o arquivo (ESCOLHA
SEGUINDO AS MESMAS REGRAS PARA O NOME DO PROJETO). Aconselho a colocar o
nome do arquivo que contm o programa com o mesmo nome do arquivo que contm as
informaes do projeto (isso vai manter a sua pasta, onde estaro todos os programas do curso,
organizada).
Para "compilar - executar" voc tem duas opes: A) utilizando a opo de menu
"Executar""Compilar Executar" ou B) simplesmente pressionar "F11" conforme a tela abaixo:
Pgina 7 de 29
(fig. A10)
Ao pressionar "F11" voc deve estar vendo a seguinte tela:
(fig. A11)
Pgina 8 de 29
Nesta tela o "DEV" est solicitando que voc salve o seu programa fonte (source) "arquivo .C",
conforme indicado pela seta vertical. Sugiro escolher o mesmo nome do projeto por questes de
organizao (NO USE ESPAO EM BRANCO NEM ACENTOS NO NOME). Ento troque o
"main.c" por "projeto1.c" e clique em "Salvar". Se tudo ocorreu conforme o planejado voc deve
estar vendo a seguinte tela:
(fig. A12)
Esta tela indica que o seu programa "compilou e executou" com sucesso. A seta em vermelho indica
o caminho onde est o programa executvel (o arquivo Projeto1.exe) que o "DEV" criou e executou
para voc. Est tela ser apresentada em todos os programas que faremos no curso (caso o nosso
programa "compile e execute" com sucesso). Ao pressionar qualquer tecla para continuar essa
janela ser fechada e a tela principal do "DEV" volta a ser apresentada.
Precisamos esclarecer o que programa fonte, o que programa executvel e o que o processo de
compilao.
Bem, programa fonte o seu programa escrito em uma linguagem de programao (no caso do
nosso curso a linguagem C, mas poderia ser C++ (que bastante diferente de C),PASCAL,
JAVA, C#, e muitas outras). Acontece que o computador (processador) no entende a linguagem C
ele s entende a linguagem de mquina que composta de uma sequencia enorme de ZEROS e
UNS. Ento um programa em linguagem de mquina se parece com isso
01001010100111010101010101010101010101010101010100001111111010101011100111110101
010 e quanto maior o programa mais zeros e uns vo aparecer (ainda bem que no precisamos
programar assim).
Pgina 9 de 29
S que um programa em .C se parece com isso (voc pode ver na fig. A09)
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own
getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
return 0;
}
Ento precisamos de "Algum" que possa TRADUZIR o programa escrito em C (como esse acima)
em um programa executvel (aquele que o computador entende). Esse "algum" o "Compilador".
Ento podemos dizer que o compilador pega o seu arquivo "projeto1.c" onde est o seu programa
fonte escrito na linguagem C, verifica cada linha, cada caracter procurando por um erro que voc
tenha cometido. Caso ele no encontre nenhum erro, o compilador cria o arquivo executvel
"projeto1.exe" e executa esse arquivo. Se voc cometer algum erro o arquivo executvel no ser
criado e consequentemente no ser executado. Neste caso voc teria que corrigir o erro e "compilar
executar" (pressionar F11) novamente.
O compilador bastante rigoroso, ele faz distino entre maisculo e minsculos, ele no deixa
voc esquecer nenhuma letra nem nenhum smbolo como ";" e outros.
Sugiro que voc pesquise um pouco sobre o processo de compilao e inclua um outro processo que
no falei mas importante: "linkedio"
Vamos terminar a nossa "Etapa1" fazendo algumas configuraes no "DEV" que sero muito uteis
no decorrer do curso.
Volte ao "DEV" selecione o menu FerramentasOpes do Ambiente conforme a tela abaixo:
(fig. A13)
Voc deve estar vendo a seguinte tela abaixo. Nesta tela apenas desmarque a opo de "Padro para
C++ no Novo Projeto" e clique em "Ok".
Pgina 10 de 29
(fig. A14)
Volte ao "DEV" selecione o menu FerramentasOpes do Editor, voc pode ver na fig. A13.
Pgina 11 de 29
(fig. A15)
Nesta mesma tela da fig. A15 voc vai clicar na aba "complementao" conforme indicado pela
seta. e vai ver a seguinte tela:
(fig. A16)
Ento clique na aba "Smbolo de Complementao" e voc ver a seguinte tela:
Pgina 12 de 29
FIM DA ETAPA 1
Pgina 13 de 29
(fig. B01)
Toda vez que encontrarmos o "DEV" nesta situao, vamos executar as seguintes operaes:
Pgina 14 de 29
(fig. B02)
Primeiro fechar a janela com as informaes da ltima "compilao execuo" para isso clique no
boto fechar marcado na seta "1". Em seguida v no menu "Arquivo" e clique em "Fechar Projeto".
Se algum arquivo ainda estiver aberto v novamente no menu "Arquivo" e clique em "fechar todas"
(se estiver habilitado). Bom agora que est tudo fechado podemos iniciar um novo projeto.
Clique em Arquivo Novo Projeto conforme a tela abaixo:
(fig. B03)
Voc deve estar vendo a seguinte tela (como j foi dito antes, muito importante para as nossas
aulas)
Pgina 15 de 29
(fig. B04)
Selecione "Console Application" e "Projeto C", coloque o nome do projeto como sendo "Aula01".
Ao clicar em "OK" ser solicitado a pasta onde o arquivo "Aula01.dev" deve ser alvo. Se voc
ainda no criou uma pasta para guardar todos os nossos exerccios faa isso agora.
Voc deve estar vendo a seguinte tela:
(fig. B05)
Pgina 16 de 29
Ateno para o que voc vai fazer agora, pois faremos isso em todos os exerccios. Coloque o
cursor aps a { (onde a seta indica) e pressione a tecla "ENTER" oito vezes (voc pode pressionar o
"enter" quantas vezes quiser). Voc vai estar vendo a tela abaixo:
(fig. B06)
Todos os programas que vamos fazer vo estar entre a linha 7 e a linha 14 (nesse caso).
IMPORTANTE QUE VOC NO MUDE NEM APAGUE NADA QUE VOC NO TENHA
DIGITADO. OU SEJA SUA REA SE RESUME A ESSE ESPAO. ENTO NO MUDE
NADA DA LINHA 1 AT A 6 NEM DA 15 EM DIANTE.
Na linha 10 vamos digitar (com cuidado para no errar nada, lembre-se o compilador muito
rigoroso) no esquea o ; no final da linha.
printf("Bem Vindo ao Mundo Selvagem do C");
Bem "printf" o nosso primeiro comando. Como o nome j diz "print" significa "imprimir", neste
caso "mostrar uma ou mais informaes na tela do computador". O "f" de "printf" significa
"formatted" ou seja formatado. Ento usaremos o "printf" para mostrar informaes formatadas na
tela do computador.
Voc deve estar vendo a seguinte tela:
Pgina 17 de 29
(fig. B07)
O [*] main.c no topo da tela indica que o arquivo .C ainda no foi salvo e quando for pressionado
"F11" para "compilar e executar" o programa, o "DEV" vai solicitar que voc salve, com o nome
desejado, o arquivo. Sugiro salvar com o nome "Aula01.c". Se voc fez tudo certo deve estar vendo
a seguinte tela:
(fig. B08)
Pgina 18 de 29
Observe a seta mostrando a mensagem que colocamos no programa. Ento ficou claro que tudo que
colocamos entre " (aspas) no comando "printf" aparece exatamente igual na "tela de execuo".
Como a mensagem j diz basta pressionar qualquer tecla para continuar. Vamos aproveitar o
mesmo programa e colocar um outro "printf" como visto abaixo.
(fig. B09)
O que acontecer agora se pressionarmos "F11" (compilar e executar). Veja o resultado abaixo.
(fig. B10)
Podemos aprender duas coisas importantes: Primeiro no adianta colocar os acentos porque no
conseguiremos ver nada. Segundo, apesar de usarmos dois comandos "printf" separados as
mensagens apareceram "grudadas". As duas solues so simples. No vamos acentuar nada. Para
resolver a segunda vamos colocar o FORMATADOR "\n" no local onde desejamos que uma linha
seja saltada. Ento ficar assim:
printf("Bem Vindo ao Mundo Selvagem do C\n");
printf("A linguagem C nao eh facil");
Observe o "\n" logo aps o C (mas ainda dentro das "). Isso significa que o programa aps mostrar
o caracter C vai pular para a prxima linha. Outra coisa, eu uso o "eh" para diferenciar do "" j que
no podemos acentuar. Ao pressionar F11 devemos ver a tela abaixo:
Pgina 19 de 29
(fig. B11)
Sugiro que voc coloque vrios "printf" com vrias frases e vrios \n em diferentes lugares e veja o
resultado.
Bem agora vamos usar o "printf" para mostrar o resultado de uma soma. O que voc acha que
aconteceria se eu colocasse o seguinte comando:
printf(" 2 + 2 ");
Vai aparecer 4 ou 2 + 2 ? claro que vai aparecer 2 + 2 porque o "printf" sempre mostra
exatamente o que colocamos entre ". Ele no encara esse comando como se fosse para somar dois
nmeros. E se colocssemos o comando assim:
printf( 2 + 2 );
Bem se fizermos assim, sem as " provavelmente teremos um erro pois o comando "printf" tem
algumas regras e estamos quebrando uma das importantes. Para mostrar o resultado de qualquer
operao com nmeros inteiros (nesse caso "soma") teremos que usar um outro
FORMATADOR que o %d . O formato do "printf" fica assim:
printf("%d",2 + 2 );
Os formatadores (\n ou %d ou qualquer outro) sempre vem entre " e deve aparecer onde desejamos
que ele atue. No caso do %d ele deve aparecer antes do valor que desejamos mostrar (que nesse
caso o 4). Observe que entre o formatador e a informao existe uma , (virgula).
O \n tambm pode ser usado. Veja os exemplos abaixo:
printf("%d\n",2
printf("Somando
printf("%d eh o
printf("Obtemos
+ 2 );
2 + 2 %d\n",2+2);
resultado da soma de 2 + 2\n",2+2);
o numero %d ao somar 2 com 2\n",2+2);
Podemos perceber que tudo que est entre " aparece do jeito que foi escrito exceto o %d que
substitudo pelo resultado da operao que deve ficar fora da ".
Aprendemos tambm que o operador aritmtico da adio o +
Agora o comando abaixo:
printf("Somando 15 + 6
%d
Subtraindo
15 - 6
%d\n",15+6,15-6);
Pgina 20 de 29
Observe que agora temos dois %d entre as " ento devemos ter dois nmeros fora das " que no caso
so o 21 (15 + 6) e o 9 (15 - 6). O primeiro %d para o 21 e o segundo %d para o 9.
Ento o nosso programa ficou assim:
(fig. B12)
Ao pressionar F11 temos:
(fig. B13)
Para finalizar a Etapa2 vamos ver alguns operadores aritmticos que usaremos no curso:
+
*
/
%
Adio
Subtrao
Multiplicao
Diviso
Resto da Diviso
Ateno especial para Diviso e Resto da Diviso. Estes dois operadores so os que apresentam um
maior grau de dificuldade para os alunos. Como sugesto faa vrios programas (criando desde o
inicio para no esquecer) com varias operaes usando esse operadores e os formatadores \n e %d.
FIM DA ETAPA 2
Pgina 21 de 29
printf("%f\n",7.8 + 5.3);
Observe que usamos o formatador %f e que os nmeros com casa decimal usam . (ponto) e no ,
(virgula) para separar a parte inteira da parte fracionada.
O programa abaixo apresenta o uso dos formatadores e caractersticas importantes dos
operadores / e %.
001 #include <stdio.h>
002 #include <stdlib.h>
003
004 /* run this program using the console pauser or add your own
getch, system("pause") or input loop */
005
006 int main(int argc, char *argv[]) {
007
008
printf("01 - %d\n", 7 + 8);
009
printf("02 - %d\n", 19 - 4);
010
printf("03 - %d\n", 8 * 9);
011
printf("04 - %d\n", 35 / 4);
012
printf("05 - %d\n", 18 % 5);
013
014
printf("****************************\n");
015
printf("06 - %f\n", 35.0/ 4);
016
printf("07 - %f\n", 35 / 4.0);
017
printf("08 - %f\n", 35.0/ 4.0);
018
printf("****************************\n");
019
printf("09 - %f\n", 7.5
+ 18.47);
020
printf("10 - %f\n", 78.98 - 1.98);
021
printf("11 - %d\n", 22.98 - 1.98);
022
printf("12 - %f\n", 30 * 20);
023
Pgina 22 de 29
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
printf("****************************\n");
printf("13 - %d\n", 0 % 5);
printf("14 - %d\n", 1 % 5);
printf("15 - %d\n", 2 % 5);
printf("16 - %d\n", 3 % 5);
printf("17 - %d\n", 4 % 5);
printf("18 - %d\n", 5 % 5);
printf("19 - %d\n", 6 % 5);
printf("20 - %d\n", 7 % 5);
printf("21 - %d\n", 8 % 5);
printf("22 - %d\n", 9 % 5);
printf("23 - %d\n", 10 % 5);
printf("24 - %d\n", 11 % 5);
printf("25 - %d\n", 12 % 5);
printf("26 - %d\n", 13 % 5);
printf("27 - %d\n", 14 % 5);
printf("28 - %d\n", 15 % 5);
printf("29 - %d\n", 16 % 5);
return 0;
}
Pgina 23 de 29
(fig. C01)
Observe que o operador "/" (diviso) funciona de maneira diferente dependendo dos operandos.
Se os operandos so inteiros o resultado da diviso sempre ser inteiro. Basta que apenas um
operando seja ponto flutuante para que o resultado tambm seja ponto flutuante. Observe tambm
os valores que obtemos se tentamos usar o formatador de inteiros %d com valores em ponto
flutuante e vice-versa.
Podemos ver tambm que o operador "%" s pode ser usado com operandos inteiros. Ento
ambos os operadores "/" (diviso) e "%" (resto da diviso) realizam a diviso
propriamente dita. Enquanto o operador "/" (diviso) est interessado no quociente, o operador
"%" (resto da diviso) est interessado no resto.
FIM DA ETAPA 3
Pgina 24 de 29
Teste2
Teste3
Dessa forma podemos usar o "\t" para "arrumar" o nosso texto na tela do computador.
Vamos ver abaixo um programa para calcular e mostrar a tabuada de multiplicao de 7 (sete).
001 #include <stdio.h>
002 #include <stdlib.h>
003
004 /* run this program using the console pauser or add your own getch, system("pause")
or input loop */
005
006 int main(int argc, char *argv[]) {
007
008
printf("\t\t********************************************************\n");
009
printf("\t\t*
Tabuada de Multiplicacao de 7
*\n");
010
printf("\t\t********************************************************\n\n\n");
011
012
printf("\t7 x 1 = %d\n", 7 * 1);
013
printf("\t7 x 2 = %d\n", 7 * 2);
014
printf("\t7 x 3 = %d\n", 7 * 3);
015
printf("\t7 x 4 = %d\n", 7 * 4);
016
printf("\t7 x 5 = %d\n", 7 * 5);
017
printf("\t7 x 6 = %d\n", 7 * 6);
018
printf("\t7 x 7 = %d\n", 7 * 7);
019
printf("\t7 x 8 = %d\n", 7 * 8);
020
printf("\t7 x 9 = %d\n", 7 * 9);
021
printf("\t7 x 10 = %d\n", 7 * 10);
022
023
return 0;
024 }
Pgina 25 de 29
(fig. D01)
FIM DA ETAPA 4
Pgina 26 de 29
A calculadora acima s possui uma unidade de memria, ou seja, ela s pode guardar um nico
nmero internamente. O boto "MS" ou "Memory Store" serve para registrar (armazenar) na
memria o nmero que aparece na tela. O boto "MR" ou "Memory Recall" serve para mostrar no
visor o nmero que est armazenado na memria. Ou seja o "MS" grava na memria o nmero
apresentado na tela e o "MR" l o contedo da memria e apresenta na tela. O bota "MC" ou
"Memory Clear" limpa o nmero que estiver na memria colocando o zero no lugar.
Agora vamos calcular o valor da nossa expresso. Primeiro vamos digitar 147 * 13. Ao pressionar o
boto igual obtemos o valor: 1911. Agora vamos guardar esse valor na memria pressionado "MS".
Ao fazer isso um "M" aparece no canto esquerdo do visor indicando que uma informao foi
registrada na memria. Agora podemos limpar o visor j que o nmero 1911 j est salvo na
memria. Para limpar pressione o boto "C" (o "C" limpa apenas o visor, o "M" continua l). Agora
vamos digitar o nosso segundo calculo: 123 * 34 e pressionar igual. Obtemos 4182. Agora
pressionamos o operador menos ("-") e em seguida o boto "MR" para trazer o nmero da memria
que desejamos subtrair. Aparece o 1911. Ao pressionar igual obtemos o resultado final que 2271.
Todo programa que faremos no curso precisar armazenar informaes (inicialmente nmeros) nas
unidades de memria do computador.
Pgina 27 de 29
Quantas unidades de memria tem o computador ?. Depende de quanto dinheiro voc gastou para
compra-lo.
Os computadores de hoje possuem na maioria das vezes 4 GB ou seja quatro gigabytes de
memria principal (memria RAM) ou podemos dizer quatro bilhes de unidades de memria.
Toda vez que precisamos fazer um programa e esse programa vai manusear nmeros em clculos
precisaremos de unidades de memria para armazenar os valores intermedirios dos clculos bem
como os valores finais. Ento como fazemos para armazenar um nmero na memria dentro de um
programa?
Na linguagem C somos obrigados a reservar as unidades de memria que precisaremos no programa
no inicio do mesmo. Alm desse detalhe, a linguagem C obriga que no momento da reserva
devemos indicar tambm o TIPO do dado que ser guardado nesta unidade de memria. Ento
observe o programa abaixo.
001 #include <stdio.h>
002 #include <stdlib.h>
003
004 /* run this program using the console pauser or add your own
getch, system("pause") or input loop */
005
006 int main(int argc, char *argv[]) {
007
008
int num;
009
010
num = (1967 - 462) * (2629 - 1352);
011
012
printf("%d\n",num);
013
014
015
016
017
return 0;
018 }
Na linha 008 (que realmente a primeira linha do programa para ns) estamos reservando uma
unidade de memria. Esta unidade se chama num. Podemos escolher qualquer nome que
desejarmos para a unidade de memria. Devemos estar atentos para algumas regras: No deve
possuir espao em branco nem acentos de maneira nenhuma. Deve comear por uma letra mas
pode conter dgitos. Ex:
int num1, num2, media, nota1, nota2, idade, qtdefilhos;
Neste exemplo acima estamos reservando sete unidades de memria. A palavra int no inicio da
definio indica que essas sete unidade de memria somente armazenam NMEROS INTEIROS.
A linguagem precisa saber qual o TIPO da unidade de memria e neste caso int indica
Inteiros.
Pgina 28 de 29
FIM DA ETAPA 5
Pgina 29 de 29