Buscar

Aula 2 e 3

Prévia do material em texto

ECT1203 Linguagem de Programação
2012.1
Universidade Federal do Rio Grande do Norte
Escola de Ciências e Tecnologia
Prof. Diego Rodrigues de Carvalho
Profa. Idalmis Milián Sardina
Prof. Luiz Eduardo Leite
Prof. Marconi Câmara Rodrigues
Aula 02 – Introdução à linguagem C++
Universidade Federal do Rio Grande do Norte
Escola de Ciências e Tecnologia
Hora de silenciar o celular
Manter o celular sempre desligado/silencioso quando estiver em sala de aula
Nunca atender o celular em sala de aula
Objetivo da Aula
Introduzir o conceito de linguagens de programação
Apresentar a linguagem C++
Explicar como funciona o processo de compilação e interpretação
Demonstrar o funcionamento da ferramenta Code Blocks.
Esses são os objetivos da aula
Por que aprender
uma Linguagem de Programação ?
Linguagens de Programação
Uma linguagem de programação é um método padronizado para expressar instruções para um computador. 
É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. 
5
Linguagens de Programação
Proximidade entre o usuário e o computador:
Linguagens de baixo nível
Linguagens de máquina, assembly
Linguagens de alto nível
Fortran, Cobol, C, C++, Java, Python, Lua, Basic, Pascal, Sage...
6
O livro trata C como uma linguagem de nível médio por permitir manipular bits e endereços de memória. Não seria melhor usar essa classificação?
Níveis das linguagens
Baixo nível
Código otimizado
Indicado para situações onde não há opção de alto nível
Alto nível
Programação do algoritmo mais fácil
Portabilidade
Manutenção do código
7
A linguagem C++ é ...
Linguagem de alto nível com funcionalidades de baixo nível.
Permite operações com bits, bytes, endereços de memórias.
Portável
Flexível
8
A linguagem C++ é ...
Usada no desenvolvimento de:
Unix
Linguagem C, C++
Java
Gerenciadores de Banco de Dados
Sistemas Operacionais
Editores
Programas de planilhas eletrônicas
Compiladores
Etc.
9
Forma de um programa em C++
A estrutura de um programa em C++:
Comandos do pré-processador e compilador
Definições de tipos 
Variáveis globais 
Protótipos de funções - declaração dos tipos de retorno e dos tipos dos parâmetros das funções 
Funções 
Deverá existir sempre uma função main(). 
Exemplo de programa em C++
#include <iostream>
using namespace std;
/* Sem definição de tipos */
int c;
int f (int y);
int main(int argc, char **argv)
{
	c = 3;
	cout << f(c);
	return 0;
}
int f (int y)
{
	return 2 * y;
}
A diretiva #include
É uma diretiva de pré-processador.
Provoca a inclusão de um arquivo dentro do nosso programa.
#include <iostream> //arquivo no diretório do compilador
#include “meuArq” //arquivo no diretório local do prog.
Para os compiladores modernos, os arquivos de inclusão normalmente não possuem extensão.
Nos compiladores antigos, os arquivos de inclusão possuem extensão .h
#include <iostream.h>
#include “meuArq.h”
A função main
As funções têm a seguinte estrutura: 
	tipo nome_da_funcao(parâmetros) 
{ 
  	variáveis locais 
  		instruções em C 
}
A função main: 
	int main(int argc, char **argv)
{ 
  cout << “Alô Mundo!"; 
}
Deve existir exatamente uma função chamada main
Ela é executada quando o programa é iniciado.
Os parâmetros da função são os passados para o programa na sua execução.
O objeto cout e o operador <<
A instrução:
cout << “mensagem”;
Utiliza o objeto cout para exibir o texto mensagem na tela do computador
Um entendimento detalhado do cout requer conhecimentos de classes e objetos, que não fazem parte do escopo deste curso.
O operador << (chamado de operador de inserção) é utilizado para enviar a mensagem a ser impressa para cout.
Namespace e diretiva Using
Um namespace é uma região que agrega um identificador a todos os nomes declarados dentro dela. Análogo a um sobrenome.
Ex.: o objeto cout foi declarado dentro no namespace std. 
Para usar o cout, precisaríamos usar o identificador std: 
std::cout << “mensagem”;
A diretiva using permite que nomes de um namespace possam ser usados sem o identificador do namespace.
using namespace std;
Compiladores antigos e namespaces
Os compiladores antigos não utilizam o conceito de namespace.
Portanto, os arquivos de inclusão com extensão .h, desenvolvidos para compiladores antigos não usam namespace.
Resumindo: se você incluir um arquivo com extensão .h, não utilize os namespaces previstos para o referido arquivo. 
Exemplo sem namespace (arquivo.h)
#include <iostream.h>
/* Sem definição de tipos */
int c;
int f (int y);
int main(int argc, char **argv)
{
	c = 3;
	cout << f(c);
	return 0;
}
int f (int y)
{
	return 2 * y;
}
O computador entende as linguagens de programação?
Não! 
Eles precisam traduzir tudo para binário.
Processadores de linguagens
(tradutores)
Compilador X Interpretador
20
Compilador
21
Interpretador
22
Compilação
23
g++ -E teste.cpp -o teste2.cpp
g++ -S teste2.cpp -o teste2.asm
as teste.asm –o teste.o
g++ teste.o –o teste.exe
Compilando um programa em C++
Para instalar um compilador:
No Windows, instalar o Mingw:
http://ufpr.dl.sourceforge.net/sourceforge/mingw
Ou utilizar o Dev C++, que pode ser obtido na URL
http://www.bloodshed.net/devcpp.html. 
No Linux, instalar o gcc :
		apt-get install gcc
Acho que deveríamos citar só o Dev C++ para o windows
24
Download do Codeblocks
Debugging/depuração
http://www.youtube.com/results?search_query=debugging+codeblocks&oq=debugging+codeblocks&aq=f&aqi=&aql=&gs_sm=3&gs_upl=948l17803l0l18738l20l20l1l14l15l0l336l1424l0.1.1.3l5l0
Aula 03 – Tipos básicos, variáveis e constantes
Revisão da aula anterior
O compilador precisa de algumas informações antes de compilar um código.
O compilador executa as instruções de forma seqüencial dentro da função main().
Objetivos da aula
Responder as seguintes perguntas:
Como eu faço um programa que utilize a memória de um computador?
Eu preciso entender como a memória funciona para fazer um programa de computador?
Como eu faço um programa que utilize o teclado e o monitor?
Expressões
Combinação de dados e operadores que resulta em um valor.
Definição
x = 2 * y + 4;
expressão
variável
constante
operador
Memória do computador
Endereço
Conteúdo
00
13
01
22.5
02
Pedro ÁlvaresCabral
03
001001110
...
...
Programa de computador: Manipula as informações que estão na memória para gerar novas informações.
Processamento
Entrada
Saída
Variáveis
Método utilizado pelo compilador para evitar que o programador trabalhe diretamente com endereços de memória.
Mais fácil lembrar 000111101101 ou “idade”?
Compilador cria uma tabela com os endereços de memória e os nomes.
Uma variável representa um espaço de memória através de um nome para guardar uma determinada informação.
00011110110111
idade
00001111001101
peso
00001110101010
altura
Endereço de memória: Compilador e sistema operacional decidem qual endereço da memória será utilizado (Linguagem de máquina).
Informação: Tipos básico de dados. O compilador precisa ser informado qual o tipo de informação que será armazenado na memória.
Nome: Identificador. Regras para os nomes das variáveis.
 
Toda variável precisa ser declarada antes de ser usada
Somente valores do tipo especificado podem ser armazenados na variável
Uma variável representa um espaço de memória para guardar um determinado tipo de dado.
DECLARAÇÃO:
	double lucro;
	int i, j;
	char a, b, c;
tipo lista_de_variáveis;
exemplo
Tipos básicos de dados
char - caractere
Representa um número inteiro referente ao código ASCII de um determinado caractere.
int – inteiro
Representa um número inteiro
float - ponto flutuante
Representa um número real de simples precisão
double - ponto flutuante de dupla precisão
Representa um número real de maior precisão
void - sem valor
Usado em funções sem valor de retorno ou ponteiros genéricos
Pergunta: Qual a necessidade de informar ao compilador o tipo de informação que será armazenada na memória?
Tipo
Tamanho em bytes
Faixa mínima
char
1
-127 a 127
int
4
-2.147.483.648 a2.147.483.647*
float
4
± 3,4 x 10-38a3,4 x 1038
double
8
± 1,7 x 10-308a1,7 x 10308
Resposta: Informaçõesdiferentes necessitam de espaço de memória diferentes, além de serem organizados de forma diferente na memória.
Modificadores dos tipos básicos
Método de modificar a quantidade de memória utilizada ou a forma como a informação é representada.
Alteram o conjunto de valores que o tipo pode representar:
signed, short, long e unsigned
Por exemplo:
um modificador permite armazenar números inteiros maiores (long int )
outro modificador determina que só números sem sinal possam ser armazenados (unsigned int)
Tipo
Tamanho em bytes
Faixa mínima
char
1
-127 a 127
unsigned char
1
0 a 255
signed char
1
-127 a 127
int
4*
-2.147.483.648 a2.147.483.647*
unsigned int
4
0 a4.294.967.295*
signed int
4
-2.147.483.648 a 2.147.483.647
short int
2
-32.768 a 32.767
unsigned short int
2
0 a 65.535
longint
4
-2.147.483.648 a 2.147.483.647
unsignedlongint
4
0 a 4.294.967.295
float
4
± 3,4 x 10-38a3,4 x 1038
double
8
± 1,7 x 10-308a1,7 x 10308
longdouble
10
± 3,4 x 10-4932a3,4 x 104932
TAMANHO DOS TIPOS DE DADOS
* depende do ambiente, valores para ambientes de 32 bits
Identificadores
Pode ser composto por letras, números ou sublinhados
Deve começar com uma letra ou um sublinhado
Não pode ser uma palavra reservada da linguagem C++
Nomes de variáveis, funções e outros objetos definidos pelo usuário. 
Certo ou errado?
1) soma
2) 5altura
3) peso_bruto
4) SOMA
5) desvio-padrão
6) p2p
Palavras Reservadas
asm	else	namespace	template
auto	enum	new	this
bool	explicit	operator	throw
break	export	private	true
case	extern	protected	try
catch	false	public	typedef
char	float	register	typeid
class	for	reinterpreted_cast	typename
const	friend	return	union
const_cast	goto	short	unsigned
continue	if	signed	using
default	inline	sizeof	virtual
delete	init	static	void
do	long	static_cast	volatile
doubel	main	struct	wchar_t
dynamic_cast	mutable	switch	while
Toda variável precisa ser declarada antes de ser usada.
Essa declaração deve ocorrer dentro da função main()*.
Somente valores do tipo especificado podem ser armazenados na variável
Como utilizar as variáveis em C++
*meia-verdade: Ao longo da disciplina esse conceito será modificado
DECLARAÇÃO:
	double lucro;
	int i, j;
	char a, b, c;
tipo lista_de_variáveis;
exemplo
A lista de variáveis evita que cada variável seja declarada em uma única linha, o que tornaria o programa grande.
	int i;
	int j;
	int z;
int i,j,z;
Dicas de programação
Primeiro passo na programação é identificar que tipo de informação será necessária para resolver o problema proposto.
Que tipo de informação de entrada meu programa necessita? E a saída?
As declarações das variáveis devem ser as primeiras instruções dentro da função main().
Os identificadores das variáveis devem ter relação com a informação representada (não é regra mas é extremamente recomendado).
Dicas de programação
Perfeitamente normal durante a resolução do problema surgir a necessidade de novas variáveis (variáveis auxiliares).
Essas novas variáveis devem ser declaradas no inicio da função main() como se fossem previstas inicialmente e não no meio do programa.
Code::Blocks
Declare as variáveis para fazer um programa que calcule a força aplicada em um corpo.
Processamento
Massa
Aceleração
Força
(Saída)
(Entrada)
Constantes
Constantes inteiras: são números sem ponto decimal, precedidos ou não por sinal.
1997 -3 234 	32000 5001
Constantes em ponto flutuante: requerem ponto decimal seguido pela parte fracionária do número.
123.23 4.34e-3 11.456 1001.2
Usadas em comandos para representar valores fixos de um dado tipo. 
Constantes
Constantes caracteres: único caractere envolvido por aspas simples, podendo participar de expressões aritméticas.
‘a’
caractere a
‘A’
caractere A
‘\n’
nova linha
‘\r’
retorno de carro
‘\t’
tabulação horizontal
‘\a’
alerta sonoro
‘\0’
nulo, termina um conj. de caracteresem C
‘\\’
\ - Barra invertida
‘\xdd’
Caractere de código ASCIIdd(em hexadecimal)
Constantes
Constantes string: conjunto de caracteres colocado entre aspas duplas.
‘’isso é um teste’’ “mais um teste”
A linguagem C++ insere automaticamente o caractere ‘\0’ ao final de uma string.
Não confundir strings com caracteres:
‘A’ não é igual a “A”
Atenção!
Atribuição
A declaração de variáveis somente reserva espaço na memória para ser utilizado pelo programa.
O comando de atribuição é responsável por armazenar uma informação em uma variável.
 variável = informação;
Sintaxe
idade = 35;
peso = 98.54;
letra = ‘d’;
Exemplos
Atribuindo valores a variáveis
Após declarada, uma variável pode receber valores.
int a;
float b;
	
a = 5;
b = 4.3;
int a = 5;
float b = 4.3;
DECLARAçÃO E 
ATRIBUIção
INICIALIZAção
Efeito 
Equivalente
Atribuindo valores a variáveis
O que acontece se fizermos a seguinte instrução?
int a = 4.3;
Atenção!
O modificador const
Variáveis do tipo const não podem ser modificadas!
 É muito usado para garantir que o valor do parâmetro não é modificado dentro da função.
const int a = 10;
const float gravidade = 9.8;
exemplo
Entrada e saída em C
E/S pelo console:
Entrada pelo teclado
Saída pela tela
É necessário incluir o protótipo
das funções no código e utilizar
o namespace std.
#include <iostream>
using namespace std;
 
E/S são efetuadas por objetos da biblioteca padrão.
76
Objeto cout (pronuncia-se C out)
Possibilita a saída de valores (constantes, variáveis, ...) para o usuário. Usado normalmente com o operador de inserção <<.
Exemplo
cout << “Primeiro Programa”;
cout << “O valor de X é:” << x;
77
Objeto cin (pronuncia-se C in)
Permite ler valores via teclado e armazená-los em variáveis do programa. Usado normalmente com o operador de extração >>.
Exemplo
cin >> x;
cin >> a >> b >> c;
78
Code::Blocks
Faça um programa que peça para o usuário digitar um número e, em seguida, mostre o valor que foi digitado.
Code::Blocks
Faça um programa que peça para o usuário digitar um número e, em seguida, mostre o valor que foi digitado.
Seqüência de passos:
Declaração de variáveis
Pedir para o usuário digitar um número
Usuário digitar um número
Mostrar o número digitado	
Objetivos da aula
Responder as seguintes perguntas:
Como eu faço um programa que utilize a memória de um computador?
Eu preciso entender como a memória funciona para fazer um programa de computador?
Como eu faço um programa que utilize o teclado e o monitor?
O modificador const
Variáveis do tipo const não podem ser modificadas!
 É muito usado para garantir que o valor do parâmetro não é modificado dentro da função.
const float a = 10.5;
int soma(const int a, const int b);
exemplo
Bloco de código
Qualquer trecho de código delimitado por { ... }
int main(void)
{
	float pi = 3.14;
	return 0;
}
exemplos
i = 10;
{
	 int j = 20;
	 printf(“%d”, j);
}
if(t == 1)
{
	 char s[80];
	 gets(s);
}
Escopo de variáveis
Variáveis declaradas dentro de um bloco de código não são visíveis fora dele.
O espaço de memória usado pela variável é liberado na saída do bloco de código.
 Se duas variáveis de mesmo nome são visíveis em um bloco de código, prevalece aquela declarada no bloco mais interno.
Mostrar exemplos usando o Dev C++.
84

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes