bases de programação módulo 7 c / c++ · 2010-09-28 · c++ (c plus plus) é uma evolução do c...

25
Bases de Programação Módulo 7 C / C++ 2010/2011

Upload: others

Post on 21-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Bases de Programação

Módulo 7

C / C++

2010/2011

Page 2: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Índice2

Origens

Características

Variáveis

Constantes

Instruções básicas

Input/output/atribuições

Tipos de dados

Operadores

Introdução Linguagem C/C++

Page 3: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Origens do C e do C++

C surge na década 70

Nos laboratórios Bell da companhia de

Telecomunicações, AT&T

Dennis Richie e Brian Kerningham

Unix - foi 1º S.O. escrito em C

3

Introdução Linguagem C/C++

Page 4: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

C++ (C plus plus) é uma evolução do C - 1983

Linguagem orientada por Objectos e não estruturada

Criador Bjarne Stroustrup

Mas não é 100% compatível com o C

É considerada uma linguagem de alto nível

É case sensitive

Printf não é igual a printf

Características do C++4

Introdução Linguagem C/C++

Page 5: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Estrutura de um programa C

• Directivas ao compilador- Includes- Macros

• Declarações Globais- Variáveis

• Definição das Funções

Programa C

{-Declaração das var locais da função main-Comandos da função main}

main ()

5

Introdução Linguagem C/C++

Page 6: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

variáveis6

Variável: “objecto” que pode assumir diversos valores;

Espaço de memória de um certo tipo de dado associado a um nome para referenciar seu conteúdo

Declaração Tipo nome = [inicialização];

Exemploint a =2;float b=2.2;

Escopo Globais – variáveis que são reconhecidas em toda a parte. Locais - variáveis que apenas podem ser usadas dentro da função de onde

foram declaradas.

Introdução Linguagem C/C++

Page 7: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Variáveis - Definição7

quantos caracteres quiser ( até 32);

comece com letras ou sublinhado:Seguidos de letras, números ou sublinhados

C é sensível ao caso:peso <> Peso <> pEso

não podemos definir um identificador com o mesmo nome que uma palavra reservada

auto static extern int long if while do ......

Introdução Linguagem C/C++

Page 8: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Constantes8

São valores que são mantidos ao longo do programa

const int numero=100;

void main ( ){

const int idade=20;cout << “ A sua idade = : ”<< idade);

}

Introdução Linguagem C/C++

Page 9: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Linguagem Pascal/C

program Alegria;

Uses crt;

BEGIN

writeln('Benfica - Sporting 0 - 3');

end.

#include <stdio.h>

void main ()

{

printf (“Benfica - Sporting 0 - 3\n”);

}

9

Introdução Linguagem C/C++

Page 10: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Exemplo de um programa em C ++

/* Primeiro programa */

#include <iostream>

using namespace std;

void main()

{

Int raio;

Float area;

Cout<< “Digite a medida do raio”;

Cin >> raio;

Area=3.14*raio*raio;

Cout<< “A Área = ”<< area;

}

10

Comentários ou // caso utilize uma só linha

biblioteca utilizada – I/O

função principal – inicio do programa

marca início da função

Definição de variáveis locais, utilizadas dentro do programa principal (inteiro / decimal)

Instrução de escrita no ecrã

Instrução de leitura do teclado

Instrução de atribuição

marca fim da função

Introdução Linguagem C/C++

Page 11: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Intruções básicas11

Instrução de leitura de dados

cin >> nota ;

Instrução de tratamento de dados

Atribuição ex. nota = (teste1+teste2)/2

Instrução de escrita de dados

cout << “A sua nota foi = ” << nota;

Introdução Linguagem C/C++

Page 12: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Tipos de dados - Primitivos12

Tipo Tamanho – bytes Faixa mínima

Char 1 -128 a 127

Int 2 ou 4

Nº inteiros [-32 768 a 32 767]Nº inteiros [-2 147 483 648 a 2 147 483 647]

Float 4 Nº reais [3.4E-38 a 3.4E+38]

Double 8 Nº reais [1.7E-308 a 1.7E+308]

Void 0 Nenhum valor (vazio)

O tamanho do inteiro depende da arquitectura do sistema

• Um sistema 32 bits -> inteiro de 32 bits• Um sistema 64 bits -> inteiro de 64 bits

Introdução Linguagem C/C++

Exemplo de declaração de var

•char s declara s como apenas 1 caractere;•char s[10] declara s como um array de 10 caracteres

Page 13: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Tipos de dados - outros13

Tipo

Bool True/false

Short

Long

signed

unsigned

Introdução Linguagem C/C++

Modificadores

signed, unsigned, long e short -> Podem ser aplicados ao tipo int

long -> pode ser aplicado ao tipo double

signed e unsigned -> Podem ser aplicados ao tipo de dados char

Page 14: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Lista de caracteres especiais14

Código significado

\n Nova linha

\r Enter

\t tabulação (tab)

\b Retrocesso

\” Aspas duplas

\\ Barra invertida

\’ Aspas simples

\a Alerta (emite um bip)

\? Ponto de interrogação

Introdução Linguagem C/C++

Page 15: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Formatando as saídas - cout

É possível estabelecer o tamanho mínimo para a impressão de um campo

#include <iostream>#include <iomanip>using namespace std;void main ( ){

float x=10;cout << setw (20)<< setprecision (3);cout << x/3 << '\n';

}

10/3= 3.3333333333333333333333333333333

Avança o cursor 20 espaços

Formata o decimal para 3 dígitos de precisão

3.33

Coloca o cursor na linha abaixo

Biblioteca que oferece recursos para controlar espaços e dígitos de precisão na escrita

15

Page 16: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Formatando as saídas - cout16

Altere o programa anterior de forma a que o valor apresentado no écran

Apareça no meio da 3º linha do écran (40x80)

O valor apresentado tem de conter 6 digitos de precisão

Page 17: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Operadores Aritméticos

Operador Ação

+ Adição

* Multiplicação

/ Divisão

% Resto da divisão inteira

- Subtração

-- Decremento

++ Incremento

17

Introdução Linguagem C/C++

Nas primeira máquinas o incremento /decremento era processado maisrápido do que uma tribuiçãoX++x=x+1

Page 18: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Comparações e Testes

Observemos antes de mais nada que ++x é diferente de x++

Se

x = 10;

y = ++x;

/* x=x+1; y=x; */

então x = 11 e

y = 11

porém Sex = 10;y = x++;/* y=x; x=x+1 */

então x = 11 e y = 10

18

Resolva:

x = 19;

y = x++;y = ++x;

Page 19: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Operadores Relacionais e Lógicos

Operador Acção

> Maior que

>= Maior ou igual que

< Menor que

<= Menor ou igual que

== Igual a

!= Diferente de

&& Condição “E”

|| Condição “OU”

! Negado

19

Page 20: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Operadores - Observação

Em C o resultado da comparação

FALSO -> 0

VERDADEIRO -> 1

20

Page 21: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C

Comparações e Testes

Sex = 1;y = 2;cout << x == y << ‘\n’

Qual seria a saída deste comando?

V (1)ou F(0)

21

Resolva o seguinte exercicio no computador

Page 22: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Operadores aritméticos de atribuição

Operador Significado

+= Soma seguido de atribuição

-= Subtração seguido de atribuição

*= Multiplicação seguido de atribuição

/= Divisão seguido de atribuição

%= Resto da divisão seguido de atribuição

22

Ex.

x+=2 x=x+2

……

Page 23: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Comparações e Testes

cout<< (10 > 4 && !(10 < 9) || 3 <= 4)

Qual seria a saída deste comando?

V ou F

23

Page 24: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Conversões de Tipos

Quando forem misturadas variáveis de diferentes tipos, o compilador C converterá os operandos para o tipo de operando maior.

int i=5;float f=1.5;double d=0.15;x= i + f * d;

double

double

float double

inteiro

Pelo que a variável x deve ser declarada como double

24

Page 25: Bases de Programação Módulo 7 C / C++ · 2010-09-28 · C++ (C plus plus) é uma evolução do C - 1983 Linguagem orientada por Objectos e não estruturada Criador Bjarne Stroustrup

Introdução Linguagem C/C++

Programando C++

• Faça um programa que peça a sua idade e o seu nome e depois volte a listar no écran estes estes

dados, tal como mostra a seguinte figura

• Use os carecteres especiais de formatação por forma a que a informação listada tenha uma boa

apresentação.

• Depois de aparecer no écran a última frase deve-se ouvir um sinal sonoro

25