faculdade de ciÊncias sociais e tecnolÓgicas tecnologia em redes de computadores algoritmos e...

50
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo [email protected] http://bsi.k6.com.br FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores

Upload: internet

Post on 22-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Algoritmos e linguagens de programação 1

(aula 01)

Prof. Alessandro [email protected]://bsi.k6.com.br

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Page 2: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Breve histórico da computação e da programação

Em 1642 surge a máquina de calcular, mecânica, de Pascal, que realizava somas e subtrações em números de até oito algarismos.

A idéia de programação adveio, juntamente com a computação, do final da década de 30, através do MARK 1, o primeiro computador com relês (sistema eletetromecânico). As ativações e desativações nos relês (o que hoje evoluiu para o código binário) eram representadas por chaves mecânicas que o programador ajustava manualmente.

Em 1940, um programador verificou que seu programa não funcionava corretamente. Ele verificou que uma mariposa havia pousado na parte traseira do seu equipamento, obstruindo uma das chaves. Daí a idéia de “bug”, utilizada até hoje para significar um erro em algum programa.

O primeiro computador digital eletrônico foi criado entre 1939 e 1946: o ENIAC. Ele executava 300 multiplicações por segundo e sua programação era muito lenta (por meio de válvulas).

Page 3: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Breve histórico da computação e da programação

Entre 1945 e 1951, o WHIRLWIND, do MIT, foi o primeiro computador a processar informações em tempo real, com entrada de dados a partir de fitas perfuradas e saída em CRT (monitor de vídeo).

Em 1947 o transistor é inventado e em 1953 uma memória magnética é construída.

Ao final da década de 70, os primeiros computadores e softwares próximos ao que conhecemos hoje foram fabricados.

Na década de 80 foram criados os computadores IBM da série 80x86 (8086, 80286, 20386, 80486).

Page 4: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Teclado

Mouse

Scanner

Processador

Disco rígido

RAM

Monitor

Impressora

Dispositivos de entrada

Dispositivos de saída

Unidade de processamento e armazenamento

Page 5: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Teclado

Mouse

Scanner

Processador

Disco rígido

RAM

Monitor

Impressora

Dispositivos de entrada: permitem a entrada de dados e instruções pelo usuário, como textos, comandos, clicks, rolamento de páginas, etc.

Dispositivos de saída: permite que o usuário monitore suas ações (monitor) ou que seja emitido outro tipo de informação (impressora).

Unidade de processamento e armazenamento: processa as instruções e dados inseridos pelos dispositivos de entrada, armazena temporariamente ou permanentemente informações na RAM ou no disco rígido e envia informações aos dispositivos de saída.

Page 6: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Processador: Componente responsável (1) pela tomada de decisões a respeito das instruções provenientes dos dispositivos de entrada e das instruções a serem enviadas aos dispositivos de saída, (2) pela gravação ou recuperação de dados na RAM e no disco rígido e (3) pelos cálculos lógicos e aritméticos.

Processador

Disco rígido

RAM

Dispositivosde

entrada

Dispositivosde

saída

Page 7: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Processador

Disco rígido

RAM

Dispositivosde

entrada

Dispositivosde

saída

RAM (Random Access Memory – Memória de Acesso Aleatório): memória de funcionamento baseado em fundamentos eletrônicos, apresentando alta velocidade de gravação e recuperação. Além disso, é volátil (os dados são perdidos uma vez que a corrente elétrica é cessada).

Disco rígido: memória baseada na gravação e recuperação de dados de forma magnética, permitindo que os dados fiquem gravados mesmo após cessar a corrente elétrica.

Page 8: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Processador

Disco rígido

RAM

Dispositivosde

entrada

Dispositivosde

saída

Troca de informações por código binário.

Troca de informações por código binário.

010001001111011010100110101011001010010101010000111111001010111001101100100000011

Exemplo de conteúdo:

Page 9: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Processador

Disco rígido

RAM

Dispositivosde

entrada

Dispositivosde

saída

Troca de informações por código binário.

Troca de informações por código binário.

Exemplo de conteúdo:

010001001111011010100110101011001010010101010000111111001010111001101100100000011

Instruções

Dados

Page 10: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Organização Básica de um Computador

Exemplo de conteúdo:

010001001111011010100110101011001010010101010000111111001010111001101100100000011

Instruções

Dados

Cada dígito de um código binário é chamado bit.

Palavra é um conjunto de bits com tamanho determinado.

1 Byte é uma palavra de 8 bits.

1 Kb (um quilobyte) representa o conjunto de 1024 bytes (210 bytes).

1 Mb (um megabyte) = 1024 Kb (210 Kb) = 1048576 bytes (220 bytes).

1 Gb (um gigabyte) = 1024 Mb = 230 bytes.

Page 11: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números binários e decimais

Estamos acostumados ao sistema decimal, ou seja, ao sistema numérico de 10 dígitos(0, 1, 2, 3, 4, 5, 6, 7, 8 e 9). No entanto, os dispositivos de armazenamento do computador entendem as instruções e os dados no sistema binário, ou seja, aquele formado por apenas 2 dígitos (0 e 1, que também podem ser entendidos como nulo e não-nulo, falso e verdadeiro, etc.)

Assim, a seqüência de um número binário de quatro dígitos é:

0000 000001 010010 020011 030100 040101 050110 060111 071000 081001 091010 10 ... ...

Observação:

Essa é uma seqüência de números binários que possuem 4 bits.

Page 12: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números binários e decimais

A conversão matemática para equivaler número binário a um número decimal é aquela que considera cada dígito como a existência ou não da potência de 2 no número decimal.

8 bits = 1 byte

27 26 25 24 23 22 21 20

Se for 1: o número decimal contém a potência de 2 mostrada;Se for 0: o número decimal não contém a potência de 2 mostrada.

Alguns exemplos com 1 byte:

1 0 1 0 0 0 1 1

27 0 25 0 0 0 21 20+ + + + + + + = 163

Page 13: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números binários e decimais

A conversão matemática para equivaler número binário a um número decimal é aquela que considera cada dígito como a existência ou não da potência de 2 no número decimal.

8 bits = 1 byte

27 26 25 24 23 22 21 20

Se for 1: o número decimal contém a potência de 2 mostrada;Se for 0: o número decimal não contém a potência de 2 mostrada.

Alguns exemplos com 1 byte:

0 0 0 1 0 1 0 0

0 0 0 24 0 22 0 0+ + + + + + + = 20

Page 14: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números binários e decimais

A conversão matemática para equivaler número binário a um número decimal é aquela que considera cada dígito como a existência ou não da potência de 2 no número decimal.

8 bits = 1 byte

27 26 25 24 23 22 21 20

Se for 1: o número decimal contém a potência de 2 mostrada;Se for 0: o número decimal não contém a potência de 2 mostrada.

Alguns exemplos com 1 byte:

0 1 0 0 1 1 0 1

0 26 0 0 23 22 0 20+ + + + + + + = 77

Page 15: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números binários e decimais

A quantidade de números inteiros decimais que podem ser representados por uma palavra de bits (um conjunto de bits) de tamanho n é dado pela fórmula:

Quantidade de números inteiros decimais representáveis = 2n

Obs.: Em 1 byte, pode-se representar 256 (28) números inteiros (0 a 255).

n bits

.....

Page 16: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Ainda não foi visto como pode-se representar números negativos com a conversão mostrada anteriormente. Existem várias formas de representação de números negativos, mas a mais simples consiste em reservar um bit para a representação do sinal (0 é positivo e 1 é negativo). Assim, reservando-se o primeiro bit para o sinal, os bits restantes representam o valor absoluto do número inteiro.

n – 1 bits

.....

n bits

1 bit

Exemplificando considerandonúmeros com n = 8 (1 byte):

0 1 0 0 1 1 0 1

26 0 0 23 22 0 20+ + + + + + = + 77

positivo

Page 17: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Ainda não foi visto como pode-se representar números negativos com a conversão mostrada anteriormente. Existem várias formas de representação de números negativos, mas a mais simples consiste em reservar um bit para a representação do sinal (0 é positivo e 1 é negativo). Assim, reservando-se o primeiro bit para o sinal, os bits restantes representam o valor absoluto do número inteiro.

n – 1 bits

.....

n bits

1 bit

Exemplificando considerandonúmeros com n = 8 (1 byte):

1 1 0 0 1 1 0 1

26 0 0 23 22 0 20+ + + + + + = - 77

negativo

Page 18: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Ainda não foi visto como pode-se representar números negativos com a conversão mostrada anteriormente. Existem várias formas de representação de números negativos, mas a mais simples consiste em reservar um bit para a representação do sinal (0 é positivo e 1 é negativo). Assim, reservando-se o primeiro bit para o sinal, os bits restantes representam o valor absoluto do número inteiro.

n – 1 bits

.....

n bits

1 bit

Exemplificando considerandonúmeros com n = 8 (1 byte):

negativo

1 0 0 1 0 1 0 0

0 0 24 0 22 0 0+ + + + + + = - 20

Page 19: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Ainda não foi visto como pode-se representar números negativos com a conversão mostrada anteriormente. Existem várias formas de representação de números negativos, mas a mais simples consiste em reservar um bit para a representação do sinal (0 é positivo e 1 é negativo). Assim, reservando-se o primeiro bit para o sinal, os bits restantes representam o valor absoluto do número inteiro.

n – 1 bits

.....

n bits

1 bit

Exemplificando considerandonúmeros com n = 8 (1 byte):

positivo

0 0 1 0 0 0 1 1

0 25 0 0 0 21 20+ + + + + + = + 35

Page 20: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Para representar letras e símbolos, os sistemas operacionais mais utilizados atualmente utilizam o código ASCII. Este código nada mais é que uma tabela de conversão de números binários de 1 byte (8 bits) em símbolos, letras ou números.

Decimal Binário Caracter

00 0000 0000 Caracter Nulo

01 0000 0001 Começo de cabeçalho de transmissão

02 0000 0010 Começo de texto

03 0000 0011 Fim de texto

04 0000 0100 Fim de transmissão

05 0000 0101 Interroga

06 0000 0110 Confirmação

07 0000 0111 Sinal sonoro

08 0000 0100 Volta um caracter

09 0000 1001 Tabulação Horizontal

10 0000 1010 Próxima linha

11 0000 1011 Tabulação Vertical

12 0000 1100 Próxima Página

13 0000 1101 Início da Linha

Decimal Binário Caracter

48 0011 0000 0

49 0011 0001 1

50 0011 0010 2

51 0011 0011 3

52 0011 0100 4

53 0011 0101 5

54 0011 0110 6

55 0011 0111 7

56 0011 1000 8

57 0011 1001 9

58 0011 1010 :

59 0011 1011 ;

60 0011 1100 <

61 0011 1101 =

Page 21: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Números inteiros e código ASCII

Decimal Binário Caracter

65 0100 0001 A

66 0100 0010 B

67 0100 0011 C

68 0100 0100 D

69 0100 0101 E

70 0100 0110 F

71 0100 0111 G

72 0100 1000 H

73 0100 1001 I

74 0100 1010 J

75 0100 1011 K

76 0100 1100 L

77 0100 1101 M

78 0100 1110 N

79 0100 1111 O

80 0101 0000 P

81 0101 0001 Q

Decimal Binário Caracter

82 0101 0010 R

83 0101 0011 S

84 0101 0100 T

85 0101 0101 U

86 0101 0110 V

87 0101 0111 W

88 0101 1000 X

89 0101 1001 Y

90 0101 1010 Z

91 0101 1011 [

92 0101 1100 \

93 0101 1101 ]

94 0101 1110 ^

95 0101 1111 _

96 0110 0000 `

97 0110 0001 a

98 0110 0010 b

Page 22: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Compiladores

Os compiladores são softwares desenvolvidos para converter textos em alguma linguagem de programação (código-fonte) em linguagem de máquina.

using namespace std;#include <iostream>

int main() {

cout << “Teste de programação”;

return(0)}

1001111010001110101101110011010101111011001101010101011011100101000101101011101011111000011100100101001000001101111110001100110111010101011100111110001100001111

COMPILADOR

CÓDIGO FONTE (C++)LINGUAGEM DE MÁQUINA

Page 23: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Linguagens de baixo e alto nível

Linguagens de baixo nível:

linguagem de máquina: instruções programadas em seqüências de 0 e 1;

assembly: instruções de máquina representadas por palavras entendíveis ao ser humano (ADD, MOVE,...).

Linguagens de alto nível:

Linguagens que permitem ações próximas à realidade humana e mais distantes da realidade binária dos computadores. Codificam dados para que

seqüências de 0 e 1 signifiquem algo mais entendível, como letras e números, permitindo pouco acesso aos baixos níveis de processamento.

Page 24: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

C C++

Java

C#

Evolução do C++

PHP(1969) (1979)

(1990 – 2000)

Page 25: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Evolução do C++

C C++ C# e Java

Sem orientaçãoa objeto

Com orientaçãoa objeto

Com orientaçãoa objeto

Alto desempenho Alto desempenho Baixo desempenho

Pouca portabilidade Pouca portabilidade Grande portabilidade

Page 26: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Orientação a objeto

Técnica de programação baseada no desenvolvimento encapsulado de programas.

Nova forma de se visualizar a estruturação de programas, diferenciando-se substancialmente de linguagens como Pascal e Basic.

Muito utilizada e adequada para grandes projetos que envolvem muitas equipes de desenvolvimento.

Possibilidade de recursos muito complexos e extremamente versáteis.

Page 27: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Estrutura básica de um programa em C++

A estrutura básica de um programa em C++ pode ser visualizado abaixo.

// Inclusões de bibliotecas

using namespace std;#include <iostream>

int main() {

/* Função principal: Programa principal */

return(0)}

Page 28: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Tipo CaracterísticaLargura em bits

Faixa representativa

int Número inteiro 32-2.147.483.648 a 2.147.483.647

float Ponto flutuante 321.8E-38 a 3.4E+38

doublePonto flutuante de precisão dupla

642.2E-308 a 1.8E+308

bool Booleano (lógico) 1Verdadeiro ou

falso

char Caracter 8-127 a 127

(Tabela ASCII)

Tipos de dados do C++

Page 29: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Memória Número inteiro

a (32 bits)

1 31

Sinal Representação binária

Tipos de dados do C++

Page 30: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Operador Significado

= Atribuição

+ Adição

- Subtração

* Multiplicação

/ Divisão

% Módulo

++ Incremento

-- Decremento

Dois argumentos(binário)

Um argumento(unário)

Operadores aritméticos

Page 31: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Operador Significado

+= Somar e atribuir

-= Subtrair e atribuir

*= Multiplicar e atribuir

/= Dividir e atribuir

Dois argumentos(binário)

Operadores aritméticos (continuação)

Page 32: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

X++; é equivalente a X = X + 1;

que pode ser resumido por X += 1;

X--; é equivalente a X = X - 1;

que pode ser resumido por X -= 1;

A expressão X = X + A pode ser resumida

por X+=A.

Operadores aritméticos

Page 33: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

A expressão X = X + A pode ser resumida

por X+=A.

A expressão X = X * A pode ser resumida

por X*=A.

A expressão X = X / A pode ser resumida

por X/=A.

Operadores aritméticos

Page 34: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

O C++ possui a vantagem de possibilitar ao programador muita mobilidade em relação à declaração de variáveis e de métodos.

Diferentemente do Pascal, no C++ pode-se declarar uma variável em qualquer lugar do programa.

Estrutura geral

Page 35: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Sintaxe (pode-se declarar variável em qualquer trecho de código):

tipo var1;

tipo var2 = valor2, var3 = valor3;

tipo: o tipo da variável declarada, que pode ser int, float, double, char, etc.

var1, var2, var3: o identificador, o nome da variável. As regras de formação são muito semelhantes às do Pascal.

valor2, valor3: valor que pode ser atribuído a uma variável no momento de sua declaração.

Declaração de variáveis

Page 36: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exemplo:

int var1;

double var2 = 0.58;

Declaração de variáveis

Memória

var2 (64 bits)

1 31

Sinal Representação binária

var1 (32 bits)

Page 37: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Declaração de variáveis

Existem regras para a criação dos nomes das variáveis para que não seja confundido variáveis com outras estruturas da linguagem.As regras principais são:

a) As variáveis só podem conter valores alfanuméricos: ‘0’ até ‘9’, ‘a’ até ‘z’, ‘A’ até ‘Z’ e o caracter sublinhar ‘_’ (underscore) e não podem ser palavras reservadas da linguagem.

b) As variáveis não podem conter outros símbolos como ‘, <, ), ., &, %, !, /, etc.

b) As variáveis não podem começar por número;

Exemplos:

Formação correta:

numero1a14_10n123456_AbCd

Formação incorreta:

intnumero.de.pessoasnum1(inteiro)2aa a

Page 38: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exemplo:

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Declaração e utilização de variáveis

Page 39: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Declaração e utilização de variáveis

Memória

var1

Page 40: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

indefinido

indefinido

Page 41: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

indefinido

indefinido

var5

30

Page 42: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

30

indefinido

var5

30

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Page 43: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

30

1.58

var5

30

+

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;

Page 44: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

30

1.58

var5

30

+

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;var6

30

Page 45: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Declaração e utilização de variáveis

Memória

var1

var2

var3

var4

0.58

1.00

30

1.58

var5

30

ERRO!!!

int var1;

double var2 = 0.58, var3 = 1.0, var4;

int var5 = 30;

var1 = var5;

var4 = var3 + var2;

int var6 = var5 % 7;

var1 = var4;var6

30

Page 46: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Operadores aritméticos

Cada operador aritmético está localizado em uma ordem de execução. Essa ordem é muito semelhante àquela sabida e utilizada por nós na matemática:

a) a execução do produto e da divisão precede a soma e a subtração;

b) as operações de mesma precedência são realizadas da esquerda para a direita;

c) utiliza-se parênteses para modificar ou ressaltar a ordem de cálculo de expressões aritméticas.

double a, b;

a = 10; b = 5;

a = a*b+2*3+b; b = 2*3+( (a-50)*2+(b+1) );

double x = (a + b)/a*b;

Exemplos:

Page 47: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exemplos

1. Considerando o código abaixo, verifique inicialmente se há algum erro que pode ser evidenciado na compilação. Posteriormente, liste os valores de todas as variáveis depois de sua execução.

2. Crie um programa que declare duas variáveis (a e b), atribua quaisquer valores a elas e armazene os resultados das duas expressões abaixo nas variáveis f1, f2 e f3 como mostrado abaixo.

int a, b = 10, c = 20;float d = 30, e = 1.5;double f = 1.5;

a = b + c;c = b – a;d = 2*d + e;f = 5*f;b = f;

a

bafebaf

baf

2322,

21

2

Page 48: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exemplos

1. Considerando o código abaixo, verifique inicialmente se há algum erro que pode ser evidenciado na compilação. Posteriormente, liste os valores de todas as variáveis depois de sua execução.

int a, b = 10, c = 20;float d = 30, e = 1.5;double f = 1.5;

a = b + c;c = b – a;d = 2*d + e;f = 5*f;b = f;

int a, b = 10, c = 20;float d = 30, e = 1.5;double f = 1.5;

a = b + c; // a = 30c = b – a; // c = -20d = 2*d + e; // d = 61.5f = 5*f; // f = 7.5b = f; // erro!!

Resposta:

Page 49: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exemplos

2. Crie um programa que declare duas variáveis (a e b), atribua quaisquer valores a elas e armazene os resultados das duas expressões abaixo nas variáveis f1, f2 e f3 como mostrado abaixo.

a

bafebaf

baf

2322,

21

2

double a = 10, b = 20;

double f1, f2, f3;

f1 = (a + b*b)/2;

f2 = 2*(a+b);

f3 = (a+b)/(2*a);

Page 50: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 01) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Exercício

1. Considerando o código abaixo, verifique inicialmente se há algum erro que pode ser evidenciado na compilação. Posteriormente, liste os valores de todas as variáveis depois de sua execução.

2. Crie um programa que declare duas variáveis (a e b), atribua quaisquer valores a elas e armazene os resultados das duas expressões abaixo nas variáveis f1, f2 e f3 como mostrado abaixo.

int a, b = 1, c = 3;float d = 4, e = 10.5;double f = 15;

a = b + 2*c;c = c + b – a;d = 2*d + e;f = 5*f + 10;a = d;

bafebabafb

baf

2322,1