Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
e-mail: danielmenintortelli@gmail.com
MSN: danielmt_2003@hotmail.com Skype: daniel.menin.tortelli
Site: http://sites.google.com/site/danielmenintortelli/home
27/02/2013
Bibliografia
H. M. Deitel; P. J. Deitel, C++ How to Program, 6th Edition. Prentice Hall, 2005. Shepherd G.; Kruglinski D. Programming with Microsoft Visual C++ .NET, Sixth Edition. Microsoft Press, 2003. Stroustrup B.; The C++ Programming Language, Third Edition AT&T. Published by Addison Wesley Longman, Inc. 1997. Vandevoorde D., Josuttis N. C++ Templates: The Complete Guide. Addison Wesley. 1992.
http://www.cplusplus.com/doc/tutorial/
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 2
Histria de C / C++
C++ uma evoluo de C, que evoluiu de duas linguagens de programao anteriores, BCPL e B. BCPL foi desenvolvida em 1967 por Martin Richards, como uma linguagem para escrever software de sistemas operacionais e compiladores. Ken Thompson modelou muitas caractersticas de sua linguagem B inspirando-se em suas correspondentes em BCPL e usou B para criar as primeiras verses do sistema operacional UNIX no BelI Laboratories, em 1970, em um computador DEC PDP-7. Tanto BCPL como B eram linguagens typeless, ou seja, sem definio de tipos de dados - todo item de dados ocupava uma palavra na memria e o trabalho de tratar um item de dados como um nmero inteiro ou um nmero real, por exemplo, era de responsabilidade do programador. A linguagem C foi derivada de B por Dennis Ritchie no BelI Laboratories e foi originalmente implementada em um computador DEC PDP-l 1 em 1972. C usa muitos conceitos importantes de BCPL e B, ao mesmo tempo que acrescenta tipos de dados e outras caractersticas. C se tornou inicialmente conhecida como a linguagem de desenvolvimento do sistema operacional UNIX. Hoje em dia, a maioria dos sistemas operacionais so escritos em C ou C++. C est atualmente disponvel para a maioria dos computadores. C independente de hardware. Com um projeto cuidadoso, possvel se escrever programas em C que so portveis para a maioria dos computadores.
27/02/2013
Histria de C / C++
No final dos anos 70, C evoluiu para o que agora chamado de C tradicional, C clssico ou C de Kernighan e Ritchie. A publicao pela Prentice HalI, em 1978, do livro de Kemighan e Ritchie, The C Programming Language, chamou muita ateno para a linguagem. O uso difundido de C com vrios tipos de computadores (s vezes chamados de plataformas de hardware) infelizmente levou a muitas variaes da linguagem. Estas eram semelhantes, mas freqentemente incompatveis. Isto era um problema srio para desenvolvedores de programas que precisavam escrever programas portveis que seriam executados em vrias plataformas. Tornou-se claro que uma verso padro de C era necessria. Em 1983, foi criado o comit tcnico X3J 11 do American National Standards Committee on Computers and Information Processing (X3) para produzir uma definio no-ambgua e independente de mquina da linguagem. Em 1989, o padro foi aprovado. O ANSI cooperou com a International Standards Organization (ISO) para padronizar C a nvel mundial; o documento de padronizao conjunta foi publicado em 1990 e chamado de ANSI/ISO 9899: 1990. Cpias deste documento podem ser pedidas ao ANSI. A segunda edio de Kernighan e Ritchie, publicada em 1988, reflete esta verso chamada ANSI C, uma verso da linguagem agora utilizada mundialmente.
27/02/2013
Histria de C / C++
Como C uma linguagem padronizada, independente de hardware e amplamente disponvel, aplicativos escritos em C podem ser freqentemente executados com pouca ou nenhuma modificao em uma ampla variedade de sistemas de computao diferentes. C++, uma extenso de C, foi desenvolvida por Bjarme Stroustrup no incio dos anos 80 no Beil Laboratories. C++ apresenta vrias caractersticas que melhoram a linguagem C, mas o mais importante que fornece recursos para a programao orientada a objetos.
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 5
Use uma abordagem de blocos de construo para criar programas. Evite reinventar a roda. Use pedaos existentes onde for possvel - isto chamado de reutilizao de software e um aspecto central da programao orientada a objetos.
Programao C++ - Prof. MSc.Daniel Menin Tortelli 7
27/02/2013
Os programas em C++ passam tipicamente por seis fases, at que possam ser executados. So os seguintes:
1. 2. 3. 4. 5. 6. Editar; Pr-processar; Compilar; Linking (Ligao); Loading (Carga); Execuo.
27/02/2013
10
27/02/2013
11
27/02/2013
27/02/2013
13
Fase 6: Execuo
Finalmente, o computador, sob controle de sua CPU, executa o programa, uma instruo por vez.
27/02/2013
15
27/02/2013
16
1 2 3
9
9 - Clique com o boto direito em Source Files > Add > New Item... 10 - Adicione um arquivo com a extenso .cpp 11 Modifique o nome do arquivo para Main.cpp
10
11
12
27/02/2013
20
Para executar o programa, pressione CTRL + F5 Ou entre no menu Debug > Start Without Debugging...
27/02/2013
21
27/02/2013
22
Variveis
Os programas precisam de uma maneira para armazenar os dados que usam.
As variveis e constantes oferecem uma variedade de formas para se trabalhar com nmeros e outros valores.
Do ponto de vista de um programador, uma varivel um local na memria do computador no qual voc pode armazenar um valor e a partir do qual voc posteriormente pode recuper-lo.
27/02/2013
23
24
Palavras Chave
Algumas palavras so reservadas pela C++ e voc no pode uslas como nomes de varivel. Essas so as palavras-chave usadas pelo compilador para controlar o seu programa. Exemplos:
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while
27/02/2013
26
Ou voc poderia combinar essas etapas e inicializar largura quando defini-la por meio da seguinte instruo:
27/02/2013
27
Bytes
Pr-fixos
signed unsigned None None None none short int, signed short int unsigned short int long int, signed long int unsigned long int none none none none none __wchar_t
27/02/2013
28
27/02/2013
29
Variveis Constantes
Como as variveis, as constantes so locais de armazenamento de dados. Entretanto, as variveis normais mudam; as constantes, no mudam. Voc deve inicializar uma constante quando ela criada e no pode atribuir-lhe um novo valor posteriormente; Para isso deve ser usado o prefixo CONST. Exemplo:
const int pesoLimite = 75; const int idadeMinima = 18;
27/02/2013
30
Variveis Constantes
27/02/2013
31
Operadores Aritmticos
C/C++ suporta cinco operadores aritmticos: + Soma
/
* %
27/02/2013
Subtrao Diviso
Multiplicao Mdulo (resto diviso)
32
27/02/2013
33
27/02/2013
Subtrao
34
Depurando a aplicao
A depurao do cdigo visa a procura e eliminao de possveis erros lgicos no cdigo da aplicao (bugs). Os erros lgicos no so detectados pelo compilador ao criar o executvel do programa. Os bons projetos precisam reduzir o ndice de bugs para o menor nmero possvel. Outros termos utilizandos por programadores so Debugar ou Debugando a aplicao.
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 35
Depurando a aplicao
1 - Adicione um breakpoint na linha onde a aplicao ir pausar sua execuo ao entrar no modo Debug.
Para remover um breakpoint, basta clicar novamente sobre o mesmo.
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 36
Depurando a aplicao
2 Para entrar em modo Debug, pressione F5, ou inicie a aplicao pelo menu Debug > Start Debugging...
Note que a execuo do programa ser pausada exatamente na linha contendo o breakpoint (seta amarela sobre o breakpoint)
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 37
Depurando a aplicao
3 Verifique se a aba Autos/Locals est sendo exibida na parte inferior da tela do Visual Studio 2012.
Nessa aba ser possvel verificar o estado atual da varivel na memria em tempo de execuo...
27/02/2013
38
Depurando a aplicao
5 Conforme as linhas so executadas, o valor das variveis atualizado na memria e pode ser visualizado na aba Autos/Locals
4 Para avanar na execuo do programa, pressione F10 Ao avanar, a seta amarela mostra a posio da prxima linha que ser executada...
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 39
Depurando a aplicao
6 Para cancelar/encerrar a execuo em modo debug, pressione SHIFT + F5.
27/02/2013
40
27/02/2013
41
Imprimindo nome do aluno com sobrenome e mdias com casas decimais fixas:
27/02/2013
42
27/02/2013
43
Exerccios
1- Crie um programa que realize e exiba o resultado dos clculos abaixo:
27/02/2013
44
Exerccios
27/02/2013
45
Exerccios
27/02/2013
46
Exerccios
7 Uma farmcia paga o seu funcionrio a cada sexta-feira e deseja deixar pronto o envelope de pagamento. Escrever um algoritmo que l o valor do salrio do funcionrio e calcula o menor nmero possvel de notas de 100, 50, 10, 5 e 1, em que o valor lido pode ser decomposto. Escreva o valor lido e o nmero de notas de cada tipo que compe o envelope de pagamento. 8 O custo ao consumidor, de um carro novo, a soma do custo de fbrica com a percentagem do distribuidor e o percentual dos impostos (aplicados ao custo de fbrica). Escrever um algoritmo que l o custo de fbrica, o percentual do distribuidor e o percentual dos impostos e calcula e escreve o valor a ser pago pelo consumidor por este carro.
27/02/2013 Programao JAVA (J2SE) - Prof. MSc. Daniel Menin Tortelli 47
Exerccios
9 Escrever um algoritmo que l o valor de uma compra em dlares, a taxa do dlar do dia da compra, o percentual de ICMS e o percentual de lucro da empresa, e calcula e escreve o valor a ser pago em reais, sabendo-se que o percentual de lucro e o percentual de ICMS incidem sobre o valor em reais. 10 Uma autolocadora aluga seus carros com uma taxa fixa por dia, uma taxa por Km rodado e desconto de 10% na taxa fixa de aluguel por dia. Escrever um algoritmo que l a taxa fixa por dia, a taxa por Km rodado, o nmero de dias, o nmero de Km rodados e calcula e escreve o valor total de aluguel, o valor do desconto, o nmero de dias e a quilometragem rodada.
27/02/2013 Programao JAVA (J2SE) - Prof. MSc. Daniel Menin Tortelli 48
Exerccios
11 Escrever um algoritmo que l o nmero de um vendedor, o seu salrio fixo, o total de vendas por ele efetuadas e o percentual que ganha sobre o total de suas vendas. Calcular o salrio total do vendedor e escrever o nmero e o salrio total. 12 Escrever um algoritmo que l o pblico total de um jogo de futebol e fornece a renda do jogo, sabendo-se que havia 4 tipos de ingressos assim distribudos:
Popular 10% a R$ 1,00 Geral 50% a R$ 5,00 Arquibancada 30% a R$ 10,00 Cadeiras 10% a R$ 20,00
27/02/2013
49
Operadores Relacionais
Para que seja possvel avaliar uma comparao entre duas expresses, podemos usar os operadores relacionais. Conforme especificado no padro ANSI-C++, o resultado de uma operao relacional um valor bool que pode ser somente true ou false, de acordo com o resultado da comparao.
27/02/2013
== != > <
>=
<=
Maior ou igual a
Menor ou igual a
50
Operadores Relacionais
Alguns exemplos de relaes e seus retornos: Fique atento: o operador = (um sinal de igual) no o mesmo que o operador == (dois sinais de igual).
(7 == 5) Retornaria false.
(5 > 4) Retornaria true. (3 != 2) Retornaria true.
((b=2) == a)
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 51
Operadores Relacionais
claro que, ao invs de usar somente constantes numricas, podemos usar qualquer expresso vlida, incluindo variveis. Suponha que a=2, b=3 e c=6
(a == 5) Retornaria false. (a*b >= c) Retornaria true j que (2*3 >= 6) verdadeiro.
(b+4 > a*c) Retornaria false j que (3+4 > 2*6) falso.
((b=2) == a) Retornaria true.
27/02/2013
52
Operadores Relacionais
27/02/2013
53
Operadores Relacionais
27/02/2013
54
Operadores Lgicos
! && ||
27/02/2013
55
Operadores Lgicos
O operador ! equivalente operao booleana NOT, possui somente um operando localizado direita, e a nica coisa que faz inverter o valor desse operando, gerando false se o operando for true e true se o operando for false.
o mesmo que dizer que retorna o resultado oposto da avaliao do operando. Por exemplo: !(5 == 5) Retorna false porque a expresso direita (5 == 5) seria true. !(6 <= 4) Retorna true porque (6 <= 4) seria false. !true Retorna false. !false Retorna true.
27/02/2013 Programao C++ - Prof. MSc.Daniel Menin Tortelli 56
Operadores Lgicos
Os operadores lgicos && e
resultado a && b
resultado a || b
( (5 == 5) && (3 > 6) ) retorna false ( true && false ). ( (5 == 5) || (3 > 6)) retorna true ( true || false ).
27/02/2013
57
Operadores Lgicos
27/02/2013
58
atribuio, =, pode causar um erro de lgica ou de sintaxe. um erro de sintaxe se os operadores ==, !=, <=, >=, contiverem espaos entre os seus smbolos. Inverter os operadores !=, <=, >=, como em =!, =<, =>, um erro de sintaxe. Coloque apenas uma instruo por linha em um comando. Esse formato aprimora a legibilidade do programa.
27/02/2013 Programao JAVA (J2SE) - Prof. Daniel Menin Tortelli 59
Exerccios
13 - Escreva um programa que calcule os quadrados e cubos dos nmeros de 0 a 10 e que imprima os resultados como na tabela ao lado:
OBSERVAES: Esse programa NO requer nenhuma entrada do usurio. Pesquise uma forma de fazer a tabulao em C++
27/02/2013 Programao JAVA (J2SE) - Prof. MSc. Daniel Menin Tortelli 60
Exerccios
14 - Escrever um algoritmo para ler uma temperatura em graus Celsius, calcular e exibir o valor correspondente em Fahrenheit. 15 - Escrever um algoritmo para ler uma temperatura em graus Fahrenheit, calcular e exibir o valor correspondente em Celsius. 16 - Faa um programa que leia trs valores em variveis distintas e armazene a soma em outra varivel. Mostre o valor da soma. 17 - Escrever um algoritmo para ler o raio de um circulo, calcular e mostrar a sua rea. 18 - Escreva um programa que calcule a rea de um retngulo. 19 - Escreva um programa que calcule a rea de um tringulo. 20 - Escreva um programa que calcule o permetro do quadrado.
27/02/2013
61
Exerccios
21 - Escrever um algoritmo para ler as dimenses de uma parede (largura e altura), calcular e exibir a quantidade de caixas de azulejos para azulejar todas as paredes. Cada caixa de azulejos possui 2 metros quadrados.
22 - Escrever um algoritmo para ler o nmero de eleitores de um municpio, o nmero de votos brancos, nulos e validos. Calcular e escrever o percentual que cada um representa em relao ao total de eleitores.
27/02/2013
62