FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores 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 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). FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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). FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador RAM Teclado Monitor Mouse Processador Impressora Scanner Dispositivos de saída Dispositivos de entrada Disco rígido Unidade de processamento e armazenamento FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador 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. RAM Teclado Monitor Mouse Processador Impressora Scanner Disco rígido FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador RAM Dispositivos de entrada Processador Dispositivos de saída Disco rígido 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador RAM Dispositivos de entrada Processador Dispositivos de saída Disco rígido 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador RAM Troca de informações por código binário. Dispositivos de entrada Processador Dispositivos de saída Troca de informações por código binário. Disco rígido Exemplo de conteúdo: 010001001111011010100110101 011001010010101010000111111 001010111001101100100000011 FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador RAM Troca de informações por código binário. Dispositivos de entrada Dispositivos de saída Processador Troca de informações por código binário. Disco rígido Exemplo de conteúdo: Instruções Dados 010001001111011010100110101 011001010010101010000111111 001010111001101100100000011 FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Organização Básica de um Computador Exemplo de conteúdo: Instruções Dados 010001001111011010100110101 011001010010101010000111111 001010111001101100100000011 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 ... 00 01 02 03 04 05 06 07 08 09 10 ... Observação: Essa é uma seqüência de números binários que possuem 4 bits. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 1 1 21 20 Alguns exemplos com 1 byte: 1 0 1 0 0 0 27 + 0 + 25 + 0 + 0 + 0 + 21 + 20 = 163 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 0 0 21 Alguns exemplos com 1 byte: 0 0 0 1 0 1 0 + 0 + 0 + 24 + 0 + 22 + 0 + 0 = 20 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 0 1 21 Alguns exemplos com 1 byte: 0 1 0 0 1 1 0 + 26 + 0 + 0 + 23 + 22 + 0 + 20 = 77 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 n bits ..... Obs.: Em 1 byte, pode-se representar 256 (28) números inteiros (0 a 255). FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 bits 1 bit n – 1 bits ..... Exemplificando considerando números com n = 8 (1 byte): 0 1 0 0 1 1 0 1 26 + 0 + 0 + 23 + 22 + 0 + 20 = + 77 positivo FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 bits 1 bit n – 1 bits ..... Exemplificando considerando números com n = 8 (1 byte): 1 1 0 0 1 1 0 1 26 + 0 + 0 + 23 + 22 + 0 + 20 = - 77 negativo FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 bits 1 bit n – 1 bits ..... Exemplificando considerando números com n = 8 (1 byte): 1 0 0 1 0 1 0 0 0 + 0 + 24 + 0 + 22 + 0 + 0 = - 20 negativo FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 bits 1 bit n – 1 bits ..... Exemplificando considerando números com n = 8 (1 byte): 0 0 1 0 0 0 1 1 0 + 25 + 0 + 0 + 0 + 21 + 20 = + 35 positivo FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 00 0000 0000 01 Caracter Decimal Binário Caracter Caracter Nulo 48 0011 0000 0 0000 0001 Começo de cabeçalho de transmissão 49 0011 0001 1 02 0000 0010 Começo de texto 50 0011 0010 2 03 0000 0011 Fim de texto 51 0011 0011 3 04 0000 0100 Fim de transmissão 52 0011 0100 4 05 0000 0101 Interroga 53 0011 0101 5 06 0000 0110 Confirmação 54 0011 0110 6 07 0000 0111 Sinal sonoro 55 0011 0111 7 08 0000 0100 Volta um caracter 56 0011 1000 8 09 0000 1001 Tabulação Horizontal 57 0011 1001 9 10 0000 1010 Próxima linha 58 0011 1010 : 11 0000 1011 Tabulação Vertical 59 0011 1011 ; 12 0000 1100 Próxima Página 60 0011 1100 < 13 0000 1101 Início da Linha 61 0011 1101 = FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Números inteiros e código ASCII Decimal Binário Caracter Decimal Binário Caracter 65 0100 0001 A 82 0101 0010 R 66 0100 0010 B 83 0101 0011 S 67 0100 0011 C 84 0101 0100 T 68 0100 0100 D 85 0101 0101 U 69 0100 0101 E 86 0101 0110 V 70 0100 0110 F 87 0101 0111 W 71 0100 0111 G 88 0101 1000 X 72 0100 1000 H 89 0101 1001 Y 73 0100 1001 I 90 0101 1010 Z 74 0100 1010 J 91 0101 1011 [ 75 0100 1011 K 92 0101 1100 \ 76 0100 1100 L 93 0101 1101 ] 77 0100 1101 M 94 0101 1110 ^ 78 0100 1110 N 95 0101 1111 _ 79 0100 1111 O 96 0110 0000 ` 80 0101 0000 P 97 0110 0001 a 81 0101 0001 Q 98 0110 0010 b FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. CÓDIGO FONTE (C++) LINGUAGEM DE MÁQUINA using namespace std; #include <iostream> int main() { cout << “Teste de programação”; return(0) } COMPILADOR 100111101000111010110 111001101010111101100 110101010101101110010 100010110101110101111 100001110010010100100 000110111111000110011 011101010101110011111 0001100001111 FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Evolução do C++ C# C C++ (1969) (1979) PHP Java (1990 – 2000) FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Evolução do C++ C C++ C# e Java Sem orientação a objeto Com orientação a objeto Alto desempenho Alto desempenho Baixo desempenho Pouca portabilidade Pouca portabilidade Grande portabilidade Com orientação a objeto FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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) } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Tipos de dados do C++ Tipo Característica Largura em bits Faixa representativa int Número inteiro 32 -2.147.483.648 a 2.147.483.647 float Ponto flutuante 32 1.8E-38 a 3.4E+38 double Ponto flutuante de precisão dupla 64 2.2E-308 a 1.8E+308 bool Booleano (lógico) 1 Verdadeiro ou falso char Caracter 8 -127 a 127 (Tabela ASCII) FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Tipos de dados do C++ Memória Número inteiro a (32 bits) 1 31 Sinal Representação binária FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Operadores aritméticos Operador Significado = Atribuição + Adição - Subtração * Multiplicação / Divisão % Módulo ++ Incremento -- Decremento Dois argumentos (binário) Um argumento (unário) FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Operadores aritméticos (continuação) Operador Significado += Somar e atribuir -= Subtrair e atribuir *= Multiplicar e atribuir /= Dividir e atribuir Dois argumentos (binário) FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Operadores aritméticos X++; é equivalente a que pode ser resumido por X--; é equivalente a que pode ser resumido por X = X + 1; X += 1; X = X - 1; X -= 1; A expressão X = X + A pode ser resumida por X+=A. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Operadores aritméticos 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Estrutura geral 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração de variáveis 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração de variáveis Exemplo: int var1; double var2 = 0.58; Memória var1 (32 bits) var2 (64 bits) 1 Sinal 31 Representação binária FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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: Formação incorreta: numero1 a14_10 n123456 _AbCd int numero.de.pessoas num1(inteiro) 2aa a FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis 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; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis int var1; Memória var1 double var2 = 0.58, var3 = 1.0, var4; int var5 = 30; var1 = var5; var4 = var3 + var2; int var6 = var5 % 7; var1 = var4; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis int var1; Memória var1 double var2 = 0.58, var3 = 1.0, var4; indefinido var2 int var5 = 30; var1 = var5; var4 = var3 + var2; int var6 = var5 % 7; var1 = var4; 0.58 var3 1.00 var4 indefinido FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis int var1; Memória var1 double var2 = 0.58, var3 = 1.0, var4; indefinido var2 int var5 = 30; var1 = var5; 0.58 var3 1.00 var4 = var3 + var2; var4 int var6 = var5 % 7; var5 indefinido 30 var1 = var4; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis int var1; Memória var1 double var2 = 0.58, var3 = 1.0, var4; 30 var2 int var5 = 30; var1 = var5; 0.58 var3 1.00 var4 = var3 + var2; var4 int var6 = var5 % 7; var5 indefinido 30 var1 = var4; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis Memória int var1; var1 30 double var2 = 0.58, var3 = 1.0, var4; var2 0.58 int var5 = 30; + var1 = var5; var3 1.00 var4 = var3 + var2; var4 int var6 = var5 % 7; var5 1.58 30 var1 = var4; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis Memória int var1; var1 30 double var2 = 0.58, var3 = 1.0, var4; var2 0.58 int var5 = 30; + var1 = var5; var3 1.00 var4 = var3 + var2; var4 int var6 = var5 % 7; var5 1.58 30 var1 = var4; var6 30 FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Declaração e utilização de variáveis Memória int var1; var1 double var2 = 0.58, var3 = 1.0, var4; 30 var2 0.58 int var5 = 30; var3 var1 = var5; 1.00 var4 = var3 + var2; var4 int var6 = var5 % 7; var5 1.58 30 var1 = var4; var6 ERRO!!! 30 FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. Exemplos: 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; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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; 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. ab f1 2 2 , f 2 2a b e a b f3 2a FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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; Resposta: double f = 1.5; 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 = 30 // c = -20 // d = 61.5 // f = 7.5 // erro!! a = b + c; c = b – a; d = 2*d + e; f = 5*f; b = f; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. ab f1 2 2 , f 2 2a b e double a = 10, b = 20; double f1, f2, f3; f1 = (a + b*b)/2; f2 = 2*(a+b); f3 = (a+b)/(2*a); a b f3 2a FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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. 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; 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 b f1 b , f 2 2a b a b e f 3 a2 b