Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ......

45
Unesp – Campus de Guaratinguetá 4 - Conceitos Básicos sobre Algoritmos e Linguagem C Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Algoritmos 2 Unesp-Campus de Guaratinguetá 4.1 - Variáveis Como visto anteriormente, o computador possui uma área de armazenamento conhecida como memória. A memória do computador pode ser entendida como uma seqüência finita de caixinhas, que num dado momento, guardam algum tipo de informação, como por exemplo um número, uma letra, uma palavra, uma frase etc, não importa, basta saber que lá sempre existe alguma informação. O computador precisa saber onde, na memória, o dado está localizado. 4 - Conceitos Básicos sobre Algoritmos e Linguagem C

Transcript of Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ......

Page 1: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Unesp – Campus de Guaratinguetá

4 - Conceitos Básicos sobre Algoritmos e Linguagem C

Curso de Programação Computadores

Prof. Aníbal Tavares

Profa. Cassilda Ribeiro

Algoritmos 2

Unesp-Campus de Guaratinguetá

4.1 - Variáveis

�Como visto anteriormente, o computador possui uma área de armazenamento conhecida como memória.

�A memória do computador pode ser entendida como uma seqüência finita de caixinhas, que num dado momento, guardam algum tipo de informação, como por exemplo um número, uma letra, uma palavra, uma frase etc, não importa, basta saber que lá sempre existe alguma informação.

�O computador ���� precisa saber onde, na memória, o dado está localizado.

4 - Conceitos Básicos sobre Algoritmos e Linguagem C

Page 2: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 3

Unesp-Campus de Guaratinguetá

� Fisicamente, cada caixinha, ou cada posição de memória, possui um endereço, ou seja, um número, que indica onde cada informação está localizada.

� Este número é representado através da notação hexadecimal, tendo o tamanho de quatro, ou mais bytes.

4.1 – Variáveis

A seguir é mostrado um exemplo:

‘João’

30ff712

12345

20ff312

Informação

Endereço físico ‘M’

31ff502Exemplo 1.

Algoritmos 4

Unesp-Campus de Guaratinguetá

� O endereçamento das posições de memória através de números hexadecimais é perfeitamente compreendido pela máquina, mas para nós humanos esta tarefa é complicada.

� As linguagens de computador permitem que, ao invés de trabalhar diretamente com os números hexadecimais, sejam dados nomes diferentes a cada posição de memória (a cada caixinha).

� Tais nomes são de livre escolha do usuário.

� Os usuários ficaram livres dos endereços físicos (números hexadecimais) e passaram a trabalhar com endereços lógicos(nomes dados pelos próprios usuários para cada posição de memória).

4.1 – Variáveis

Page 3: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 5

Unesp-Campus de Guaratinguetá

� Assim, podemos dizer que os endereços lógicos são como caixinhas, que num dado instante guardam algum tipo de informação.

� Observe que o conteúdo destas caixinhas não é algo fixo, permanente. Na verdade, uma caixinha pode conter diversas informações, isto é, uma informação diferente a cada momento

Então o Exemplo 1 anterior, pode ser alterado para:

‘João’

Aluno

12345

numero

Informação

Endereço lógico ‘M’

sexo

4.1 – Variáveis

Algoritmos 6

Unesp-Campus de Guaratinguetá

� No exemplo 1 a caixinha (Endereço Lógico) rotulada de “Aluno”num primeiro momento continha a informação “João”, mas agora ela contém a informação “Maria”. O mesmo acontece com as caixinhas numero e sexo, que antes continham respectivamente as informações 1234 e “M”, e agora contém as informações 2348 e “F”.

Então, sempre que for necessário, pode-se alterar o conteúdo armazenado em cada variável (caixinha).

A figura do Exemplo 1, mostrado a seguir, ilustra esse fato.

‘F’‘Maria’

Aluno

2358

numero

Informação

Endereço lógico

sexo

4.1 – Variáveis

Page 4: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 7

Unesp-Campus de Guaratinguetá

� Então a informação armazenada em cada caixinha (endereço lógico) pode variar. Isto é, podem ocorrer alterações em seu conteúdo.

� Tendo este conceito em mente, a partir de agora iremos chamar, as caixinhas ou endereços lógicos, de VARIÁVEIS.

� Então, uma variável é qualquer quantidade que possa mudar de valor em diferentes estágios, dentro de um programa. O uso de variáveis permite a especificação de uma fórmula geral de cálculo.

� Desta forma podemos dizer que uma VARIÁVEL é uma posição de memória, representada por um Nome simbólico(atribuído pelo usuário), a qual contém, num dado instante, uma informação.

4.1 – Variáveis

Algoritmos 8

Unesp-Campus de Guaratinguetá

125132

86103

3451

CBACaso

Para cada conjunto de valores atribuídos a B e C teremos um valor de A, ou seja:

Exemplo 2: Seja um triângulo com os seguintes lados: A, B, C.

Do Teorema de Pitágoras temos: A2 = B2 + C2

Vejamos então, um outro exemplo.Vejamos então, um outro exemplo.

Observe então que neste exemplo temos 3 variáveis. A variável A, a variável B e a variável C. E quando fazemos B=4 e C=3, teremos A=5

4.1 – Variáveis

Page 5: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 9

Unesp-Campus de Guaratinguetá

4.1.1 - Nomes de Variáveis

Para que as variáveis possam ser identificadas no programa, elas necessitam ter um nome. Este nome deve ser significativotais como: hipotenusa, lado1 e lado2.

OBS: Na fórmula do exemplo 2, foi dado o nome de A para a hipotenusa, B para o lado 1 e de C para o lado 2 do triângulo retângulo. Contudo, esses nomes não são suficientemente significativos para se usar num programa de computador, ao passo que se for usado o nome hipotenusa, por exemplo, imediatamente sabe-seque se trata da dimensão de um triangulo retângulo.

� Regras para dar nomes as variáveis

As regras para dar nomes as variáveis podem variar ligeiramentedependendo da linguagem de programação ou do sistema decomputador em utilização.

4.1.1 - Nomes de Variáveis

Algoritmos 10

Unesp-Campus de Guaratinguetá

� O nome da variável deve começar sempre com uma letra. Os outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

�� Não é permitido o uso de espaços em branco ou de qualquer outro Não é permitido o uso de espaços em branco ou de qualquer outro

caractere, que não seja letra ou dígito, na composição do nome dcaractere, que não seja letra ou dígito, na composição do nome da a

variável.variável.

� Se utilizar palavras para compor o nome da variável utilize o “_” underline para separar as palavras.

�� em C, apenas os 31 primeiros caracteres são considerados.em C, apenas os 31 primeiros caracteres são considerados.

� A linguagem C possui palavras-chave que não podem ser utilizadas como nome de variáveis: int, for, while, etc...

4.1.1 - Nomes de Variáveis

Page 6: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 11

Unesp-Campus de Guaratinguetá

Exemplos de nomes válidos

Lado1A3Caixa_preta

Xmetro

Exemplos de nomes não válidos

3cubo � começa com número

X+Y � o “+” não vale pois confunde com o sinal

Caixa preta � não é permitido caractere branco

As variáveis, assim como os dados, podem ser do tipo

inteiro, real, cadeia e lógica.

OBS: A Linguagem C é CASE-SENSITIVA, isto é, ela faz diferença entre letras maiúscula e minúscula.

Então em C, Lado1 ≠ lado1 ≠ LADO1

4.1.1 - Nomes de Variáveis

Algoritmos 12

Unesp-Campus de Guaratinguetá

4.1.2 Tipos de Variáveis

Pode-se dizer que esta fórmula contém basicamente duas coisas: 1) Valores que podem ser classificados como constantesconstantes e e

variáveis.variáveis.

���� ConstantesConstantes são os valores que não variam em todas as aplicações da fórmula. Na fórmula acima os valores 4, 3 e πsão chamados de constantes;

���� VariáveisVariáveis são valores que mudam a cada aplicação da

fórmula. Na fórmula acima o V e o R são variáveis.

Considere a fórmula matemática para o cálculo do volume de uma esfera:

3

3

4RV π=

4.1.2 - Tipos de Variáveis

Page 7: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 13

Unesp-Campus de Guaratinguetá

2) Operações que devem ser feitas sobre determinados valores, para a obtenção da solução do problema.

4.1.2 - Tipos de Variáveis

Deste modo esta fórmula pode ser usada para resolver uma

certa classe de problemas e não apenas um problema

específico.

Então para cada valor de R que atribuímos a fórmula,

obtemos um valor de volume V.

3

3

4RV π=

Algoritmos 14

Unesp-Campus de Guaratinguetá

4.1.2.1- Tipos de Dados

� A Linguagem C exige que no momento em que se for utilizar variáveis, seja indicado o tipo de informação que a (caixinha) variávelvariável vai conter, isto é, se numa dada posição de memória será armazenado um número ou uma letra etc.

� Para isto, a linguagem C já tem definido alguns tipos de dados que deverão ser usados quando da utilização de variáveis.

� As características de cada um destes tipos será mostrada gradativamente a medida em que ser for trabalhando com eles.

4.1.2.1 - Tipos de Dados

Page 8: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 15

Unesp-Campus de Guaratinguetá

Resumindo:

� O tipo de uma variávelvariável define os valoresdefine os valores que ela pode

assumir e as operações que podem ser realizadas com ela

� Ex:

– variáveis tipo int recebem apenas valores inteiros

– variáveis tipo float armazenam apenas valores reais

A seguir são mostrados alguns dos tipos de variáveis mais

utilizados.

4.1.2.1 - Tipos de Dados

Algoritmos 16

Unesp-Campus de Guaratinguetá

Algoritmo C

Inteiro int

Real float

Real double

Caractere char

Cadeia char [ ]

Lógicaint

float

Descrição

Representa números entre -2147483647 e +2147483647. Ocupa 4 bytes de memória.

Representa números entre ±3.4x10-38 e ±3.4x10+38. Ocupa 4 bytes de memória.

Representa números entre ±1.7x10-308 e ±1.7x10+308. Ocupa 8 bytes de memória.

Representa um dos caracteres da Tabela ASCII. Ocupa 1 byte de memória.

Vetor de caracteres. Cada elemento do vetor ocupa 1 byte de memória.

Qualquer valor diferente de zero é associado ao valor lógico verdadeiro. Senão é falso.

4.1.2.1 - Tipos de Dados

Page 9: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 17

Unesp-Campus de Guaratinguetá

ALGORITMO Exemplo 3ALGORITMO Exemplo 3

VARIÁVEIS lado1, lado2:REAL;VARIÁVEIS lado1, lado2:REAL;

INICIO INICIO

lado1 lado1 ←← 1.11.1

lado2 lado2 ←← 3.23.2

Escreva (Escreva (“L1 =“ “L1 =“ lado1,lado1, “L2=”“L2=”lado2);lado2);

FIMFIM

4.1.3 - Definição de Variáveis� As variáveis são definidas no início do programa, para que o computador

reserve um espaço na memória para a elas.

� No Algoritmo, para definir (declarar) uma ou mais variáveis, utilizaremos a palavra VARIAVEIS na linha abaixo do nome do algoritmo.

// Programa Exemplo 3// Programa Exemplo 3

# # includeinclude <<stdiostdio.h>.h>

# # includeinclude <<stdlibstdlib.h>.h>

mainmain()()

{ { floatfloat lado1, lado2;lado1, lado2;

lado1 = 1.1;lado1 = 1.1;

lado2= 3.2;lado2= 3.2;

printfprintf((“L1 = %f“L1 = %f L2L2=%f”=%f”,lado1,lado2);,lado1,lado2);

systemsystem((“pause”“pause”););

}}

Declaração da variável lado1 do tipo REAL

Atribuição de valor

Impressão do valor do tipoREAL (f ⇔ float)

4.1.3 - Definição de Variáveis

Algoritmos 18

Unesp-Campus de Guaratinguetá

ii) Foram definidas duas variáveis as quais demos o Nome de Foram definidas duas variáveis as quais demos o Nome de “lado1” e “lado2”,“lado1” e “lado2”, e informamos que estas variáveis, ou e informamos que estas variáveis, ou posição de memória, só poderão aceitar dados, que sejam posição de memória, só poderão aceitar dados, que sejam números números reaisreais e que estejam entre e que estejam entre ±3.4x10-38 e e ±3.4x10+38 , , pois estas variáveis são do tipo REAL (pois estas variáveis são do tipo REAL (floatfloat na linguagem na linguagem C).C).

O Exemplo anterior nos informa que:O Exemplo anterior nos informa que:

iiii) Atribuímos à variável ) Atribuímos à variável “lado1” “lado1” oo valor 1.1. valor 1.1. ee à variável à variável “lado2” “lado2” oo valor 3.2.valor 3.2.

4.1.3 - Definição de Variáveis

Page 10: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 19

Unesp-Campus de Guaratinguetá

// Programa Exemplo 4

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

float lado1,lado2,hipo;

lado1 = 1.1;

lado2 = 2.2;

hipo = sqrt(lado1*lado1 +lado2*lado2);

printf(“L3 = %f ”,hipo);

system(“pause”);

}

ALGORITMO Exemplo 4ALGORITMO Exemplo 4

VARIÁVEIS VARIÁVEIS

lado1, lado2, lado1, lado2, hipohipo: REAL;: REAL;

INICIO INICIO

lado1 ←← 1.1

lado2 ←← 2.2

hipo←←sqrt(lado1*lado1+lado2*lado2)

Escreva(“L3 =”,hipo)

FIMFIM

Cálculo da hipotenusa:22

bac +=

Biblioteca matemática: fornece seno, cosseno, exponencial, raiz quadrada (sqrt), etc.

4.1.3 - Definição de Variáveis

Algoritmos 20

Unesp-Campus de Guaratinguetá

4.1.4 Maneiras de dar valores a uma variável

4.1.4 Maneiras de dar valores a uma variável

Quando definimos uma variável é natural atribuirmos a ela uma informação, ou seja dar-lhe um valor.

Existem duas maneiras de se dar valores a uma variável:

1. Ler o valor da variável através de uma operação de entrada, como por exemplo a leitura de dados.

2. Através da atribuição direta, do valor desejado à variável, usando o comando de atribuição

Page 11: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 21

Unesp-Campus de Guaratinguetá

// Programa Exemplo 5// Programa Exemplo 5// Colocar aqui as Bibliotecas do Exemplo 4 !

mainmain()()

{{

floatfloat lado1;lado1;

printfprintf((“Digite L1:”“Digite L1:”););

scanfscanf((“ %f“ %f ””,&lado1); ,&lado1);

lado1 = lado1 = sqrtsqrt(lado1);(lado1);

printfprintf((““sqrtsqrt(L1) = %f(L1) = %f ””,lado1);,lado1);

systemsystem((“pause”“pause”););

}}O Tag %f indica a leitura de um valor do tipo float

ALGORITMO Exemplo 5ALGORITMO Exemplo 5

VARIÁVEIS VARIÁVEIS

LADO1: REALLADO1: REAL

INICIOINICIO

Escreva ((“Digite L1:”“Digite L1:”););

Leia (LADO1) Leia (LADO1)

LADO1 ←← sqrt(LADO1)

Escreva(“raiz de L1 =”,lado1)

FIMFIM

4.1.4 Maneiras de dar valores a uma variável

1) Ler o valor da variável através de uma operação de entrada

Em linguagem algorítmica, para fazer a leitura da variável, usamos o comando: Leia(nome da variável).

Em linguagem C usamos o comando: scanf(“ % ”,&);

Algoritmos 22

Unesp-Campus de Guaratinguetá

ALGORITMO Exemplo 6ALGORITMO Exemplo 6

VARIÁVEIS VARIÁVEIS

A,B,C: INTEIRO;A,B,C: INTEIRO;

INICIOINICIO

Escreva(“Digite a e b:”)

Leia (A,B); Leia (A,B);

C C ←← A + B;A + B;

Escreva(Escreva( A,A,”+””+”,B,,B,”=“”=“,, C);C);

FIMFIM

Leitura de a e b com apenas um scanf.

Impressão dos valores de a, b e c com um printf

4.1.4 Maneiras de dar valores a uma variável

// Programa Exemplo 6// Programa Exemplo 6

<<includeinclude stdiostdio.h>.h>

<<includeinclude stdlibstdlib.h>.h>

mainmain()()

{{

intint a, b, c;a, b, c;

printfprintf((“Digite a e b:”“Digite a e b:”););

scanfscanf((““ %d%d”%d%d”,&a,&b); ,&a,&b);

c = a + b;c = a + b;

printfprintf((“%d + %d = %d “%d + %d = %d \\n”n”,a, b, c);,a, b, c);

systemsystem((“pause”“pause”););

}}

A tag %d indica que o tipo da variável a ser lida é inteiro

Page 12: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 23

Unesp-Campus de Guaratinguetá

� Observe no exemplo 6 que em linguagem algorítmica, utilizamos o Leiapara se fornecer um valor para a variável e na linguagem C, utilizamos o comando scanf()

� Então no exemplo 6, ao se executar o programa aparecerá escrito na tela: Digite a e b.Digite a e b.

Se digitarmos os números, por exemplo 14 e 33, eles serão armazenados respectivamente nas variáveis a e b.

A seguir, o programa irá calcular c = a + bc = a + b ⇒⇒ 14+3314+33 e colocará o valor 47 na caixinha da variável c, e c, e por ultimo escreverá na tela os valores de a, b a, b e cc

� O leia é um comando bloqueante, isto é, ele faz com que o computador fique esperando que o dado lhe seja fornecido (digitado). Se não digitarmos nada para que o computador possa ler, ele ficará parado para sempre esperando que o dado seja digitado.

� Leia é um comando que ordena ao computador que vá por exemplo, na tela buscar o que o usuário digitou.

4.1.4 Maneiras de dar valores a uma variável

Algoritmos 24

Unesp-Campus de Guaratinguetá

2) Através da atribuição direta, do valor desejado à variável, usando o comando de atribuição

� Em linguagem algorítmica a operação de atribuição é indicada pelo símbolo: .

� Em linguagem C a operação de atribuição é feita pelo sinal de igual (=)

� Exemplo: A3 no algoritmoA=3; no programa em C

O exemplo acima indica que o valor 3 foi atribuído à variável A e que qualquer valor que A pudesse ter antes se perdeu. Ou seja, a posição de memória (a caixinha) que uma variável representa, receberá uma informação, a qual será armazenada

no interior desta variável.

4.1.4 Maneiras de dar valores a uma variável

Page 13: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 25

Unesp-Campus de Guaratinguetá

// Programa Exemplo 7#include <stdlib.h>#include <stdio.h>main(){

int a = 16;printf(“a = %d”,a);a = -13;printf(“a = %d”,a);printf(“Digite o valor de a”);scanf(“ %d ”,&a);printf(“a = %d”,a);system(“pause”);

}

Então, seja a seqüência de operações mostradas a seguir:A 16A -13A 0

O valor da variável A após as três operações é igual à última atribuição realizada, ou seja, 0 (zero).

Definição+Atribuição

Atribuição

Leitura

ALGORITMO Exemplo 7VARIÁVEISA: INTEIROINICIO

A ← 16Escreva (“a=“,a) A ← -13

Escreva (“a=“,a)Escreva(“Digite o valor de a”)Leia(A)Escreva (“a=“,a)

FIM

4.1.4 Maneiras de dar valores a uma variável

Algoritmos 26

Unesp-Campus de Guaratinguetá

� No programa do Exemplo 7, anterior, foi feita a atribuição de um valor a variável a (a=16), juntamente com a declaração da variável a. A seguir foi feita a atribuição do valor –13 á variável a e este valor foi impresso na tela. Depois disso foi pedido que se digite um valor para variável a, e novamente será impresso o valor de a, que desta vez será o mesmo que foi digitado.

� Lembre-se então que o valor que fica guardado na caixinha (memória) é sempre o último.

4.1.4 Maneiras de dar valores a uma variável

Page 14: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 27

Unesp-Campus de Guaratinguetá

4.1.4 Maneiras de dar valores a uma variável

OBS: em C, uma variável tem que ser declarada no início de um bloco de código. Assim, o programa a seguir não é válido em C (embora seja válido em C++).

#include <stdio.h>

#include <stdlib.h

main()

{

int x;

int y;

y = 10;

x = 24;

int k = 20; /* Esta declaracao de variável não é válida, pois não está

sendo feita no início do bloco */

system( “pause” );

}

Algoritmos 28

Unesp-Campus de Guaratinguetá

Exercícios

1) Em quais dos seguintes pares é importante a ordem dos

comandos? Em outras palavras, quando se muda a ordem dos

comandos, os resultados finais se alteram? Suponha X=2 Y=3

Z=4

4.1.4 Maneiras de dar valores a uma variável

a) X Y Y Z

Resultado X = 3Y = 4

Se invertermos o comando

Y Z X Y

Resultado Y = 4X = 4

O resultado é alterado.

Page 15: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 29

Unesp-Campus de Guaratinguetá

b) Fazendo Invertendo as linhas

X Y X = 3 Z X Z = 2

Z X Z = 3 X Y X = 3

O resultado é alterado.

c) Fazendo Invertendo o comando

X Z X = 4 Z X Z = 2

X Y X = 3 X Y X = 3

O resultado é alterado.

d) Fazendo Invertendo as linhas

Z Y Z = 3 X Y X = 3

X Y X = 3 Z Y Z = 3

O resultado não é alterado.

Suponha X=2 Y=3 Z=4

4.1.4 Maneiras de dar valores a uma variável

Algoritmos 30

Unesp-Campus de Guaratinguetá

4.2 - Constantes

� Constantes são valores fixos que não podem ser modificados pelo programa

Tipo Exemploschar � ‘a’ ‘\n’ ‘9’int � 123 1 1000 -23long int � 35000 -45short int � 10 -12 90unsigned int � 1000U 234U 4365Ufloat � 123.45 3.1415e -10double � 123.45 -0.91254

4.2 - Constantes

Page 16: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 31

Unesp-Campus de Guaratinguetá

4.3. Comandos de Entrada e Saída

Os comandos para manusear entrada e saída de dados são muito importantes. Já vimos anteriormente que o comando leia permite que forneçamosvalores as variáveis. Então, recapitulando temos que:

4.3 Comandos de Entrada e Saída

1. O comando leia ordena ao computador que leia valores dados atribuindo-os às variáveis indicadas;

2. O comando escreva ordena ao computador que escreva, por exemplo, na tela mensagens ou valores que estão armazenados na variável.

Em linguagem algorítmica o comando leia será feito como se segue :

Leia ( lista de entrada )

A lista de entrada é composta pelos nomes das variáveis para as quais os valores serão atribuídos e na mesma ordem em que são encontrados no fluxo de dados de entrada.

Algoritmos 32

Unesp-Campus de Guaratinguetá

Exemplo 8: Leia ( V1)O computador pega o valor encontrado na tela e coloca-o na caixinha da

variável V1.

Exemplo 9: Leia ( A, B, C )Os próximos três valores encontrados na tela serão atribuídos as variáveis

A, B e C, sendo o primeiro a A, o segundo a B e o terceiro a C.

Exemplo 10: Deseja-se ler valores digitados, e estes valores são: -16, 3, 7, 21, 6, 0, 4, 8, 1. Suponha que temos os seguintes comandos Leia:

Leia ( A, B, C )Leia ( D, E, F, G )Leia ( X, Y )

Os valores digitados serão atribuídos as variáveis A, B, C, D, E, F, G, X, Y um por um na ordem escrita.

4.3 Comandos de Entrada e Saída

Page 17: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 33

Unesp-Campus de Guaratinguetá

Observações:1. No exemplo anterior os valores estão numa única linha mas

poderiam estar em várias linhas.2. Qualquer valor que a variável possua anteriormente é destruído.É

mantida a compatibilidade de tipo.

Neste comando a tag “%” é para indicar o tipo de dado que vai ser lido.

%d ⇒ é usado para valores numéricos do tipo inteiro%f ⇒ é usado para valores numéricos do tipo real%c ⇒ é usado para valores do tipo caractere%s ⇒ é usado para valores do tipo cadeia de caracteres (string)

4.3 Comandos de Entrada e Saída

Na linguagem C uma maneira de se ler dados é através do comando: scanf(“ %”,&nome da variável);

NÃO ESQUECER O ponto e virgula (;) no final da linha de comando, nem o & antes do nome da variável

Algoritmos 34

Unesp-Campus de Guaratinguetá

Assim o exemplo 8, em linguagem C, torna-se:

Exemplo 8: scanf( “%d”,&V1 );Ao executar esta linha de comando, o computador vai pegar o valor

inteiro que foi digitado na tela e vai armazena-lo na caixinha da variável V1.

OBS: A variável V1 deve ser declarada como sendo do tipo inteira, no inicio do programa

Exemplo 9: scanf ( “%d%d%d”, &A, &B, &C );Ao executar esta linha de comando, o computador vai pegar os três

valores inteiros que foram digitado na tela e vai armazená-los na caixinhas da variáveis A, B, e C, respectivamente nesta ordem.

4.3 Comandos de Entrada e Saída

Page 18: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 35

Unesp-Campus de Guaratinguetá

4.3 Comandos de Entrada e Saída

Exemplo 10: Deseja-se ler valores digitados, e estes valores são: -16, 3, 7, 21.2, 6.3, 0.5, 4.2, 8, 1. Suponha que temos os seguintes comandos de leitura:

scanf ( “%d%d%d”, &A, &B, &C );scanf ( “%f%f%f%f”, &D, &E, &F ,&G);scanf ( “%d%d%”, &X, &Y );

Os valores digitados serão atribuídos as variáveis A, B, C, D, E, F, G, X, Y um por um na ordem escrita.Observe que as variáveis D,E,F,G são do tipo real e por isso foiusado %f

Algoritmos 36

Unesp-Campus de Guaratinguetá

Com o comando de saída Escreva , em linguagem algorítmica, é possível mostrar o conteúdo de qualquer variável, o resultado dequalquer expressão ou o valor de qualquer constante.

A forma geral do comando Escreva que será utilizada aqui é:Escreva ( lista de saída )

4.3 Comandos de Entrada e Saída

Em linguagem C, uma maneira de se fazer o comando escreva é:

printf(“% “, nome da variável).

Aqui também a tag “%” serve para indicar o tipo de dado que vai ser escrito.

%d ⇒ é usado para valores numéricos do tipo inteiro%f ⇒ é usado para valores numéricos do tipo real

%c ⇒ é usado para valores do tipo caractere%s ⇒ é usado para valores do tipo cadeia de caracteres (string)

Page 19: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 37

Unesp-Campus de Guaratinguetá

Exemplo 11Nota1 = 73.0;Nota2 = 65.0;Nota3 = 94.0;Nota4 = 87.0;Media = (Nota1+Nota2+Nota3+Nota4) / 4.0;printf (“%f “,Media);O comando prinf vai mostrar o resultado 79.75.

E se desejássemos ver além da média as notas parciais?

printf (“notas individuais =%f, %f, %f, %f\n“, nota1, nota2, nota3,nota4);printf (“media final=%f”, media);

4.3 Comandos de Entrada e Saída

OBS: Qualquer frase que estiver entre aspas duplas dentro do comando printf vai aparecer na tela do computador exatamente como está escrito. E no local onde estiver a tag %, vai aparecer o valor da variável correspondente a tag.

Algoritmos 38

Unesp-Campus de Guaratinguetá

Então para o exemplo anterior, o resultado impresso na tela será: notas individuais= 73.0, 65.5, 94.0, 87.0

media final=79.75

Observe que tem duas linhas impressas. Isto só ocorreu porque foi colocado um \n, no primeiro printf, antes de fechar a aspa.

Se não tivesse sido colocado esse \n, a impressão iria acontecer tudo na mesma linha, isto é:

notas individuais= 73.0, 65.5, 94.0, 87.0 media final=79.75

4.3 Comandos de Entrada e Saída

É possível incluir uma expressão como parte da lista de saída.

A expressão é avaliada primeiro e só depois o resultado é impresso.

Exemplo 12: printf (“media final=%f”, (nota1+nota2+ nota3+nota4) / 4.0);

Page 20: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 39

Unesp-Campus de Guaratinguetá

Vejamos alguns exemplos de printf() e o que eles exibem:

printf ("Teste %% %%") ⇒ Teste % %

printf ("%f",40.345) ⇒ 40.345

printf ("Um caractere %c e um inteiro %d",'D',120) ⇒Um caractere D e um inteiro 120

printf ("%s e um exemplo","Este") ⇒ Este e um exemplo

printf ("%s%d%%","Juros de ",10) ⇒ Juros de 10%

printf ("%s %d = %.2f",“Raiz de ",10,sqrt(10)) ⇒ Raiz de 10=3.16

4.3 Comandos de Entrada e Saída

Algoritmos 40

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

Definição: uma Expressão é uma combinação devariáveis, constantes e operadores. O resultado daavaliação daquela expressão é o valor que é atribuído à variável indicada.

Isto significa que o valor 27 será atribuído

à variável conta.

43421Expressão

conta 8163 ++←Exemplo 13

Page 21: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 41

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

� Definição: Uma expressão é uma combinação de variáveis, constantes e operadores. O resultado de uma expressão é atribuído à variável indicada.

Exemplo 13

#include<stdio.h>

#include<stdlib.h>

main()

{

int conta;

conta = 3 + 16 +8;

printf(“ %d ”,conta);

system(“pause”);

}

Código C

conta←3+16+8

Em termos de memória

conta

27

conta

(1)

(2)

Algoritmos 42

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

Exercício 1: Fazer uma programa em C que converte uma temperatura dada na escala Celsius para a escala Fahrenheit. A relação entre os valores TC (em Celsius) e TF (em Fahrenheit) correspondentes à mesma temperatura é : TF - 32 = 9/5 TC.

#include <stdio.h>

#include <stdlib.h>

main()

{

int celsius, fahrenheit;

printf("Digite a temperatura de hoje: ");

scanf("%d", &celsius);

fahrenheit = 9 * celsius / 5 + 32;

printf("Hoje esta fazendo %d graus Fahrenheit!\n", fahrenheit);

system ("pause");

}

Page 22: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 43

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

Ao se executar esse programa para uma temperatura de 3 graus Celsius, o resultado será:

Esse resultado está errado!!!!

O valor correto é: 37.4 graus Fahreinheit.

Isso aconteceu porque as variáveis celsius, fahrenheit, foram declaradas como int e elas deviam ser declaradas como float.

Durante o cálculo, o programa pegou a parte inteira da divisão

Algoritmos 44

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

O programa do Exercício 1 correto é :

#include <stdio.h>

#include <stdlib.h>

main()

{

float celsius, fahrenheit;

printf("Digite a temperatura de hoje: ");

scanf("%f", &celsius);

fahrenheit = 9.0 * celsius / 5 + 32;

printf("Hoje esta fazendo %.2f graus Fahrenheit!\n", fahrenheit);

system ("pause");

}

Page 23: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 45

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

#include <stdio.h>

#include <stdlib.h>

main()

{

const float pi=3.1416;

float raio, volume;

printf("Digite o valor do raio: ");

scanf("%f", &raio);

volume = (4.0 * pi*raio*raio*raio)/3.0;

printf("O volume da espera de raio %f eh:%f\n",raio, volume);

system ("pause");

}

Exercício 2: Fazer uma programa em C para calcular o volume da esfera. Sabe-se que o volume da esfera é dado por: 3

3

4RV π=

Algoritmos 46

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

Termo2Termo1ado Result

28,60.7 Termo2

7.413.6Termo1 14 Exemplo

/←←←←

∗∗∗∗←←←←

++++←←←← Termo1=21

Termo2=20.02

resultado = 1.048951

O exemplo 15 está errado pois na expressão Resultado a variável Termo2 ainda não está definida.

28.60.7Termo2

Termo2Termo1o Resultad

7.413.6Termo1 15 Exemplo

∗∗∗∗←←←←

←←←←

++++←←←←

/

Page 24: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 47

Unesp-Campus de Guaratinguetá

4.4 4.4 -- ExpressõesExpressões

Declaração de Variáveis

Termo1, Termo2, resultado: real

Inicio

Termo1←13.6+7.4

Termo2←0.7*28.6

resultado ←Termo1/Termo2

Escreva(“Resultado=“,resultado)

Fim

Algoritmo Exemplo 14

resultado

21.0(2) 20.02

Termo1 Termo2 resultado

Em termos de memória

(1)Termo1 Termo2

21.0

21.0(3) 20.02

Termo1 Termo2 resultado

1.04

#include<stdio.h>

#include<stdlib.h>

main()

{

float Termo1, Termo2, resultado;

Termo1= 13.6+7.4;

Termo2= 0.7*28.6;

resultado = Termo1/Termo2;

printf(“ Resultado = %f ”,resultado);

system(“pause”);

}

Código C Exemplo 14

Algoritmos 48

Unesp-Campus de Guaratinguetá

4.4.1 4.4.1 –– Avaliação de ExpressõesAvaliação de Expressões

� Problema de Lógica : os componentes de uma expressão só podem ser avaliados se seus valores já estiverem definidos.

Variáveis

Termo1, Termo2, resultado: real

Inicio

Termo1←13.6+7.4

Resultado ← Termo1 / Termo2

Termo2←0.7*28.6

Escreva(“Resultado=“,resultado)

Fim

Algoritmo Exemplo 15

resultado

21.0(2)

Termo1 Termo2 resultado

Em termos de memória

(1)Termo1 Termo2

21.0

21.0(3)

Termo1 Termo2 resultado

� Não tem como calcular o valor da variável Não tem como calcular o valor da variável Não tem como calcular o valor da variável Não tem como calcular o valor da variável resultadoresultadoresultadoresultado pois, a variávelpois, a variávelpois, a variávelpois, a variávelTermo2Termo2Termo2Termo2 ainda não recebeu nenhum valor. Isto causa então, um erro ainda não recebeu nenhum valor. Isto causa então, um erro ainda não recebeu nenhum valor. Isto causa então, um erro ainda não recebeu nenhum valor. Isto causa então, um erro de Lógicade Lógicade Lógicade Lógica� Você não pode tentar acessar o valor de uma variável antes de lhe atribuir um valor

Page 25: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 49

Unesp-Campus de Guaratinguetá

4.4.1 4.4.1 –– Avaliação de ExpressõesAvaliação de Expressões

� Modificando um valor: O valor de uma variável pode ser modificado tantas vezes quantas for necessário e a última modificação é a que fica armazenada.

Algoritmo Exemplo3

Variáveis X, A: inteiro

Inicio

X←0A ←3

X ← A + 1Escreva(“Valor de X=“,X)

Fim

Exemplo 16: Suponha que asvariáveis X e A sejam inteiras

#include<stdio.h>

#include<stdlib.h>

main()

{

int X, A;

X = 0;

A = 3;

X = A+1;

printf(“Valor de X= %d ”,X);

system(“pause”);

}

Código C Exemplo 16 Em termos de memória

�Inicialmente o valor zero é atribuído á variável X e o

valor 3 é atribuído à variável A.

�A seguir é atribuído à variável X o valor de A + 1, e assim o valor de X passa

a ser 4

0

X

3

A

4

X

3

A

Algoritmos 50

Unesp-Campus de Guaratinguetá

4.4.1 4.4.1 –– Avaliação de ExpressõesAvaliação de Expressões

� Modificando um valor: O valor de uma variável pode ser modificado tantas vezes quantas for necessário e a última modificação é a que fica armazenada.

Algoritmo Exemplo 17

Variáveis X, A: inteiro

Inicio

X←0X ← X + 1Escreva(“Valor de X=“,X)

Fim

Exemplo 17: Suponha que asvariáveis X e A sejam inteiras

#include<stdio.h>

#include<stdlib.h>

main()

{

int X;

X = 0;

X = X+1;

printf(“Valor de X= %d”,X);

system(“pause”);

}

Código C Exemplo 17

0

X

Em termos de memória

� Inicialmente o valor zero é atribuído á variável X.

� A seguir o computador pega o valor de X que está na

caixinha, soma uma unidade e devolve o valor resultante a

variável X

Observe que aqui foi feito um incremento no valor da variável

X

1

X

Page 26: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 51

Unesp-Campus de Guaratinguetá

4.4.1 4.4.1 –– Avaliação de ExpressõesAvaliação de Expressões

�Do mesmo modo que o valor de uma variável pode ser incrementado, ele também pode ser decrementado. O Exemplo 6 a seguir nos mostra isso.

Algoritmo Exemplo 18

Variáveis Y, B: inteiro

Inicio

B← 1Y ←10B ←B+1Y ← Y -1Escreva(“Valor de Y=“,Y)

Escreva(“Valor de B=“,B)

Fim

Exemplo 18: Suponha que asvariáveis X e A sejam inteiras #include<stdio.h>

#include<stdlib.h>

main()

{

int B, Y;

B= 1;

Y= 10;

B = B+1;

Y= Y-1

printf(“Valor de Y= %d ”,Y);

printf(“Valor de B= %d ”,B);

system(“pause”);

}

Código C Exemplo 18 � Inicialmente foram atribuídos os valores: 1 a variável B e 10 à variável Y.

� A seguir o computador pega o valor de B que está na caixinha, soma uma unidade e devolve o valor resultante a variável B, depois ele pega o0 valor de Y que está na caixinha, subtrai um e devolve o valor resultante a caixinha

1

B

10

Y

2

B

9

Y

Algoritmos 52

Unesp-Campus de Guaratinguetá

4.4.1 4.4.1 –– Avaliação de ExpressõesAvaliação de Expressões

� Linguagem C: Na linguagem C existem 3 formas de se realizar o incremento/decremento de uma variável.

� Cuidado: As operações são equivalentes quando aparecem isoladas, mas produzem efeitos diversos quando presentes em expressões.Veja os exemplos abaixo:

x = x + 1; x++; ++x;x ← x + 1;

Em linguagem algorítmica Em linguagem C

1) y = x++; → Nesta expressão primeiro é atribuído o valor de X à variável Y,

depois o valor de X é incrementado de 1. Se por exemplo o valor

inicial de X for 1, ao final da atribuição os valores Y=1 e X=2

2) y = ++x; →Nesta expressão primeiro o valor de X é incrementado de 1 depois o

valor de X é atribuído a variável Y. Se por exemplo o valor inicial

de X for 1, ao final da atribuição os valores serão Y=2 e X=2

Page 27: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 53

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

� Operadores: quando uma expressão possui mais de um tipo de operação é necessário determinar qual é a prioridade na avaliação destas.

Exemplo 19: Seja a expressão: x ← 3+6 * 13. Qual será o valor resultante de x ?

Podemos ter por, exemplo, os dois casos a seguir:

x ←(3 + 6)*13

9

117

x ←3 + (6*13)

78

81

Caso 1 Caso 2

Algoritmos 54

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

� As operações para avaliação de uma dada expressão obedecem à umaregra de prioridade fornecida na Tabela abaixo.

Classe Operador Significado

1 ↑↑↑↑Exponenciação: é aplicada da esquerda para a direita.

2 - , + Menos e mais unários: são aplicados da esquerda para a direita.

3 * , / Multiplicação e divisão são aplicadas da esquerda para a direita.

4 + , -Adição e subtração são aplicadas da esquerda para a direita.

Page 28: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 55

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

� Prioridade: se operadores de mesma classe aparecerem mais de uma vez em uma expressão realize as avaliações da esquerda para a direita.

x ← 8 + 7 * 3 + 4 * 5

21 20++8

1 2

3

29 + 204

49

Exemplo 20: Seja a expressão x ←8+7*3+4*5. Qual será o valor de X ?

Algoritmos 56

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

� Prioridade: o uso de parênteses serve para modificar as prioridades na avaliação dos operadores em uma expressão.

Exemplo 21: Para esta expressão x ←(8+7)*(3+4)*5. Qual seráo valor de X?

x ← (8 + 7) * (3 + 4) * 5

7 5**15

1 2

3

105 * 5

4

525

Page 29: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 57

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

x ←(3*(6+2))*8

Exemplo 22

8

(3 8** 8)

1

2

3

192

24 *

(3 * (6 + 2)) * 8

Programa em C

#include <stdio.h>

#include <stdlib.h>

// Programa principal

main()

{

int X, Y;

X = (6+2);

printf(“ X = %d ”,X);

X = 3*X;

printf(“ X = %d ”,X);

X = X*8;

printf(“ X = %d ”,X);

Y = (3*(6+2))*8;

printf(“ Y = %d ”,Y);

system(“pause”);

}

Algoritmos 58

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

2 ↑ 3 ↑ 2

2 9↑

1

2

512 = 232

x ←2 ↑3 ↑2

Exemplo 23 Programa em C

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

int X, Y;

X = pow(3,2); printf(“ X = %d ”,X);

X = pow(2,X); printf(“ X = %d ”,X);

Y = pow(2,pow(3,2));

printf(“ Y = %d ”,Y);

system(“pause”);

}

Page 30: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 59

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

x ← -3 * 7 + 2 ↑ 3 / 4 -6

Exemplo 24

-3 * 7 + 2 ↑ 3 / 4 - 6

/

1

8 4 6--3 * 7 +2

-21 + /8 4 6-3

-21 + 6-2

-25

4 5

Programa em C

// Incluindo a biblioteca math.h !

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

// Programa Principal que usa pow.

main()

{

float X;

X = -3*7+pow(2,3)/4-6;

printf(“ X = %f ”,X);

system(“pause”);

}

Algoritmos 60

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

� Alternativa: a linguagem C permite outra forma de representar as operações aritméticas entre dois números x e y.

Algoritmo C operação 1 C operação 2

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

x ← x - y x = x - y; x -= y;

x ← x * y x = x * y; x *= y;

x ← x / y x = x / y; x /= y;

x ← x % y x = x % y; x %= y;

Resto da divisão inteira(x e y tem que ser inteiros)!

Page 31: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 61

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

Exercício 3: Representar as frações em expressões.

Exercício 3: Calcular o valor final de x, com variáveis REAIS.

34

212

−(12-2)/(4-3)

4

1*

3

2−(-2/3)*(1/4)

A) x ←3.0*6;

B) x ←2.0;y ←3.0;x ←x ↑y-x;

A) x ←18.0;

B) x ←6.0;

C) X←4;y ←2;x ←x*y↑(x-y);x ←x/y;

C) x ←8.0;

Resultados:

Algoritmos 62

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

C) X ←4;y ←2;x ←x*y↑(x-y);x ←x/y;

Exercício 4 Programa em C

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

float X, Y;

X = 4;

Y = 2;

X = X*pow(Y,X-Y);

X = X/Y;

printf(“ X = %f ”,X);

system(“pause”);

}

� Observação: No programa ao lado valores inteiros são atribuídos a X e Y, mas o resultado obtido é do tipo real. Isto ocorre, pois ocorre uma conversão implícita por conta de X e Y serem declarados do tipo float(ou seja, real).

Page 32: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 63

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

Exercício 5: Escreva as seguintes expressões matemáticas como expressões de Computador

� A / B + 11b

a+a)

d-c

ba +b) ���� ( A + B ) / ( C – D )

1b

a+ ���� A / B + 1c)

f

e-d

c

ba +

� (A + B / C) / ( D – E / F ) d)

Algoritmos 64

Unesp-Campus de Guaratinguetá

4.4.2 4.4.2 –– Prioridade das OperaçõesPrioridade das Operações

d-c

ba + � A + B / ( C – D )e)

( )d

cba + � ( A + B ) * C / Df)

g) ( )[ ]dcba + � ( ( A + B ) C ) D

OBS: Não se esqueça que aqui está se usando linguagem algorítmica (PORTUGOL)

Page 33: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 65

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

� Freqüentemente o conjunto de operações ( +, -, *, /, ↑ ) é complementado por operadores especiais denominados funções embutidas.

Por exemplo: A operação de raiz quadrada é denominada sqrt. E a exponênciação é denominada pow.

� As funções embutidas são rotinas pré-escritas, fornecidas pelos projetistas de linguagem de programação para auxiliar o programador na execução de cálculos que requeiram mais do que o conjunto convencional de operadores.

� Na linguagem C as funções embutidas fazem parte da biblioteca math.h

Algoritmos 66

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

Funções matemáticas da biblioteca math.hTrigonométricas

sin (x): Retorna o valor do seno de x, sendo x em graus e em double.

cos (x): Retorna o valor do co-seno de x, sendo x em graus e em double.

tan (x): Retorna o valor da tangente de x, sendo x em graus e em double.

asin(y) Retorna o valor do arco seno de y.

acos(y) Retorna o valor do arco co-seno de y.

atan(y) Retorna o valor do arco tangente de y.

sinh(x) Retorna o valor do seno hiperbólico de x, com x em graus e tipo

double.

Constantes

M_PI : Constante, "pi", fornece o valor 3.14159265358979323846

Logarítmicaslog (x): Retorna o valor do logaritmo de x na base 2. Sendo x do tipo double.

log10(x): Retorna o valor do logaritmo de x na base 10. Com x do tipo

double.60

Page 34: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 67

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

Funções matemáticas da biblioteca math.hPotências

pow (): Retorna o valor da base elevada ao expoente. Recebe dois

argumentos do tipo double, o primeiro é a base e o segundo o expoente.

Por exemplo: Para calcular 210, faz-se pow (2, 10).

sqrt (): Retorna o valor da raiz quadrada. Recebe como argumento um

double do qual ele deve extrair a raiz.

exp(x): Retorna o valor de ex

Arredondamento

ceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float

como argumento. Exemplo: ceil (45.98561) resultaria em 46.

floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um

float como argumento. Exemplo: floor (45.98561) resultaria em 45.

Algoritmos 68

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

Funções matemáticas da biblioteca math.h

abs(x): Retorna o valor absoluto de x um número inteiro

fabs(y): Retorna o valor absoluto de y um número real

cabs(x): Retorna o valor absoluto de x um número complexo

Exemplo: abs(-45) resultaria em 45.

floor(x): Retorna o primeiro float sem casas decimais abaixo de x.

Exemplo: floor (45.98561) resultaria em 45.

Logarítmicas

log (x): Retorna o valor do logaritmo de x na base 2. Sendo x do tipo

double.

log10(x): Retorna o valor do logaritmo de x na base 10. Com x do tipo

double.

Page 35: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 69

Unesp-Campus de Guaratinguetá

Exercício 6: Escrever as seguintes expressões matemáticas como expressões da linguagem C.

4.4.3 4.4.3 –– Funções Embutidas : ExercíciosFunções Embutidas : Exercícios

H= [ ( a + b ) ]d

J= sen a + cos atg a

h= pow ( A + B, D);

J= ( sin (A) + cos (A) ) / tan (A);

K=

2a

ac4bb- 2 −+ K= - B + sqrt ( pow(B,2) – 4 * A * C ) / 2 *A

Em C, para se usar as funções que calculam expoente, raiz, seno, cos etc. é necessário colocar a biblioteca math.h

Algoritmos 70

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

main()

{

double coseno = -1.0;

printf("O arco co-seno de %lf

eh %lf\n",coseno,acos(coseno));

system("pause");

}

Exercício 8: Fazer um programa

para imprimir o co-seno de 30º (pi/6

radianos), 60º (pi/3 radianos), 45º

(pi/4 radianos) e 90º (pi/2 radianos).

Para tanto, use a constante, "pi",

presente na biblioteca matemática,

que é referenciado pela constante

"M_PI“. Assim quando você

compilar o seu programa ela será

substituída pelo valor

3.14159265358979323846:

Exercício 7: Fazer um programa

que use a função acos para calcular

o arco co-seno de um ângulo em

radianos. O valor de arg deve estar,

logicamente entre -1.0 e 1.0

Page 36: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 71

Unesp-Campus de Guaratinguetá

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

#include <stdlib.h>

#include <stdio.h> Exercício 8#include <math.h>int main(){ // pi/2 radianos = 90// pi/6 radianos = 30// pi/4 radianos = 45

// pi/3 radianos = 60double angu_rad;printf("Este programa imprime os cosseno dos angulos fundamentais: \n");angu_rad = M_PI/2; //90 em radianosprintf("O cosseno de 90 graus eh %lf\n",cos(angu_rad));angu_rad = M_PI/6; //30 em radianosprintf("O cosseno de 30 graus eh %lf\n",cos(angu_rad));angu_rad = M_PI/4; //45 em radianosprintf("O cosseno de 45 graus eh %lf\n",cos(angu_rad));angu_rad = M_PI/3; //60 em radianosprintf("O cosseno de 60 graus eh %lf\n",cos(angu_rad)); system("pause");} //fim programa

Algoritmos 72

Unesp-Campus de Guaratinguetá

Pode-se usar a função pow p/ extrair as raízes de qualquer número, uma

vez que a raiz cúbica de 2, por exemplo é a mesma coisa que 2 elevado a

1/3 !!!!!

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

main()

{double indice;

double N,M, raiz;

printf("Digite o no.para o qual vc deseja extrair a raiz:");

scanf("%lf",&N);//leitura de número com dupla precisão

printf("Digite o INDICE da raiz: ");

scanf("%lf",&indice);//leitura de número com dupla precisão

M=1.0/indice;

printf("valor de N= %lf valor de M= %lf \n", N, M);

raiz = pow(N,M);

printf("A raiz %lf de %f eh: %lf\n", M, N,raiz);

system("pause");

}

Exercício 9: Fazer um programa para

calcular a raiz de índice K de um numero N

qualquer

4.4.3 4.4.3 –– Funções EmbutidasFunções Embutidas

Page 37: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 73

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita: real para inteiro

4.5 4.5 -- Conversão de TipoConversão de Tipo

Se uma variável é declarada como real (float) e for atribuída a ela um valor inteiro, vai ocorrer uma conversão implícita, pois ela será automaticamente convertida para um valor real

Exemplo 25: Sejam X e Y reais.

Algoritmo

Variáveis x, y: real

Inicio

x ← 5;

y ←2;

x ←x / y;

fim

Em termos de memória

�O valor 5.0 será atribuído a variável X, em seguida o valor 2.0 será atribuído a variável Y, a seguir o valor da variável será dividida por dois e novamente atribuída a variável X.

�Como as variáveis X e Y foram declaradas como sendo real, os valores inteiros se transformam em reais

2.0

Y

5.0

X

2.0

Y

5.0

tmp

5.0

X

Y

5.0

X

Algoritmos 74

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita: inteiro para real

4.5.1 - Conversão implícita:

Se uma variável é declarada como inteira (int) e for atribuída a ela um valor real, vai ocorrer uma conversão implícita, pois ela será automaticamente convertida para um valor inteiro

Exemplo 26: Suponha que VI e VR sejam variáveis do tipo inteira e real, respectivamente. Se atribuirmos os seguintes valores,

VR -17VI 392.73

A constante inteira –17 é convertida automaticamente pelo computadorem -17.0 para se ajustar a variável.

No caso da constante 392.73, ela será convertida para inteiro mas o valorarmazenado será 392, que não é exatamente igual ao anterior.

� Portanto, deve-se evitar conversões, exceto quando são para atingir um objetivo especial.

Page 38: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 75

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita:

// Programa Exemplo 27

#include <stdlib.h>

#include <stdio.h>

main()

{

int vi, a = -17;

float vr, b = 392.73;

printf(“Atribuir inteiro para vi e real para vr \n”);

vi = a;

vr = b;

printf(“vi = %d \n”, vi);

printf(“vr = %f \n”, vr);

// Continuação Exemplo 14

printf(“Atribuir inteiro para vr e real para vi \n”);

vr = a;

vi = b;

printf(“vi = %d \n”,vi);

printf(“vr = %f \n”,vr);

system(“pause”);

}

Ao se executar o programa anterior, teremos:

Algoritmos 76

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita:

Exemplo 28: Seja a seguinte atribuição de valores para X e Y, onde eles são declarados como inteiros

X ←5.0;y ←2.0;X ←X/Y;

� Ao se executar o programa ao lado vai ocorre uma conversão implícita por conta de X e Y serem declarados do tipo int.

� O resultado final da divisão de X por Y será 2, que é a parte inteira da divisão de 5 por 2

Exemplo 28 - Programa em C

#include <stdio.h>

#include <stdlib.h>

main()

{

int X, Y;

X = 5.0;

Y = 2.0;

X = X/Y;

printf(“ X = %d ”,X);

system(“pause”);

}

Page 39: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 77

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita:

Exercício 10: Sejam A, B e C variáveis reais e K, I, J variáveis inteiras. Dados A=4.0, B=6.0 e I=3. Quais serão os valores finais obtidos com os seguintes comandos?

C ←A*B - I;

C = 4.0*6.0-3;C = 21.0;

K ←I/4 * 6;

K = 0 * 6;K = 0;

C ←A/B+1.5;

C=6.0/4.0+1.5;C=3.0;

� Apesar da variável Iser inteira, o resultado desta expressão será um número real porque a variável C é real.

Comentário� A expressão I/4

fornece o valor inteiro(zero), ao invés de 0.75 pois I é inteiro e 4

também.

Comentário

� A expressão A/B fornece um valor real e igual a 1.5. Este valor será somado ao valor 1.5 resultando em 3.0.

Comentário

Algoritmos 78

Unesp-Campus de Guaratinguetá

4.5.1 - Conversão implícita:

Uma variável do tipo numérica (real ou inteira) não pode ser convertida implicitamente em uma variável do tipo cadeia ou vice-versa.

Page 40: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 79

Unesp-Campus de Guaratinguetá

4.5.2 - Conversão explícita:

4.5.2 - Conversão explícita ou cast: os valores atribuídos a uma variável são promovidos para um tipo definido explicitamente pelo usuário.

Exemplo 16: Seja a atribuição Abaixo, onde x e y são inteiros

x ← 5.0;y ←2.0;r ←float(x)/y;

� Observação: O resultado da divisão entre dois inteiros seria inteiro, mas o resultado a ser fornecido será real (float), devido ao uso do operador float(X).

Programa em C

#include <stdio.h>

#include <stdlib.h>

main()

{

int X, Y;

float R;

X = 5.0;

Y = 2.0;

R = float(X)/Y;

printf(“ float(X)/Y =%f ”,R);

system(“pause”);

}

Algoritmos 80

Unesp-Campus de Guaratinguetá

#include<stdio.h>#include<stdlib.h>#include<math.h>main(){ int x=9, y=0, z=0;int NUM = 5;y = x / NUM;printf("\n valor inicial de x = %d", x);z = NUM * y;x = (NUM * x) + z;printf("\n valor final de x = %d\n", x);printf("\n valor inicial de y = %d", y);y = (NUM * z) + y - 2;printf("\n valor final de y = %d\n", y);printf("\n valor de z = %d",z);z = y/x;printf("\n valor final de z = %d\n", z);

system("pause");}

Exercício 11: Analise o programa abaixo e mostre o que aparecerá na

tela do computador

4.5.2 - Conversão explícita:

Page 41: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 81

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

� Problema 1: Ler dois números inteiros exibi-los. Depois, trocar os valores entre si e exibir novamente.

Algoritmo

(1) Leia(A,B);(2) Mostre(A,B);

(3) C ← A;(4) A ← B;(5) B ← A;(6) Mostre(A,B); (4)

A B

x

C

(5)A B

y

C

x x

x

Em termos de memória

(3)A B C

x y x

y

Algoritmos 82

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

� Problema 1: Ler dois números inteiros exibi-los. Depois, trocar os valores entre si e exibir novamente.

Algoritmo

(1) Leia(A,B);(2) Mostre(A,B);

(3) C ← A;(4) A ← B;(5) B ← A;(6) Mostre(A,B);

Programa em C

// Incluir bibliotecas !main(){

int A, B, C;printf(“Digite A e B: ”);scanf(“%d %d”,&A,&B);printf(“A = %d e B = %d \n”,A,B);C = A;A = B;B = A; printf(“A = %d e B = %d \n”,A,B);system(“pause”);

}

Page 42: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 83

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

� Problema 2: Fazer programa que pede ao usuário para entrar com um valor inteiro que chama de dias, depois ele divide esse número por 365.25, ou seja, converte os dias para anos e informa ao usuário quantos anos equivalem aos dias digitados

Programa em C

#include <stdio.h>

void main ()

{int Dias; // Declaracao de Variaveis

float Anos;

printf ("Entre com o número de dias: "); // Entrada de Dados

scanf ("%d",&Dias);

Anos=Dias/365.25; // Conversao Dias�Anos

printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);

system("pause");

}

Algoritmos 84

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

� Problema 3: Determinar o saldo ao final do 3º mês de uma aplicação financeira com investimento inicial de R$300,00 e juros de 1% ao mês.

0

A

1

P=A+A*i

2

S

3

T Programa em C

// Incluir bibliotecas !main(){

float A, P, S, T, i;printf(“Digite investimento e juros: ”);scanf(“%f %f”,&A,&i);P = A*(1+i);S = P*(1+i);T = S*(1+i);printf(“Valor final = %f \n”, T);system(“pause”);

}

Algoritmo

Leia(A);

i ← 0.01;P ← A + A*i;S ← P + P*i;T ← S*(1+i);Escreva(T);

Page 43: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 85

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

� Problema 4: Refazer o problema 3, mas considerar que (a) ao final do mês o banco desconta R$ 10,00 e (b) imprimir o saldo em cada mês.

0

A

1 3

0

A

1 2 3

F

2

Item (a)

Subtrair R$10,00ao final de cada mês

Item (b)

Ao final de cada mêsmostrar o valor

Algoritmos 86

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

Algoritmo

Leia(A);

i ← 0.01;P ← (A + A*i-10);Mostre(P);

S ← (P + P*i-10);Mostre(S);

T ← (S*(1+i)-10);Escreva(T);

Programa em C

// Incluir bibliotecas !main(){

float A, P, S, T, i;printf(“Digite investimento e juros: ”);scanf(“%f %f”,&A,&i);P = A*(1+i)-10;printf(“Final Mes 1 = %f \n”, P);S = P*(1+i)-10;printf(“Final Mes 2 = %f \n”, S);T = S*(1+i)-10;printf(“Valor final = %f \n”, T);system(“pause”);

}

� Observação: Para A = R$ 300,

i = 1%, 3 meses e desconto de

R$10, ao final do terceiro mês o

saldo será de R$ 278,78 !

Page 44: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 87

Unesp-Campus de Guaratinguetá

Fórmula geralno Mês: F = A*(1+i)n

� Questão Adicional: Qual valor inicial A deve ser investido para que o valor final F, apesar dos descontos mensais de R$ 10,00 seja igual a A.

0

A

1 ••• n

F

� Questão Adicional: Calcular o valor final F do investimento A, sem considerar os descontos mensais, para qualquer número n de meses.

Fórmula: P = A*(1+i)1 – 10 = A ⇒⇒⇒⇒ A*0.01=10 ⇒⇒⇒⇒ A = R$ 1000,0

1º Mês: P = A*(1+i)1 2º Mês: S = P*(1+i)1 = A*(1+i)2

C: F = A*pow(1+i,n);

4.6 4.6 -- AplicaçõesAplicações

Algoritmos 88

Unesp-Campus de Guaratinguetá

4.6 4.6 -- AplicaçõesAplicações

Problema 5: Fazer um programa em C que leia os coeficientes a, b, c de uma equação do segundo grau e a seguir calcule as duas raízes.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{ float A,B,C,raiz1, raiz2, delta;

//Leitura de dados

printf("Digite os coeficientes da equacao de 2o.grau:\n");

printf("Ax2+Bx+C,\n");

printf("A=?");

scanf("%f", &A);

printf("B=? ");

scanf("%f", &B);

printf("C=? ");

scanf("%f", &C);

// Calculo das Raizes

delta = (B*B) - (4*A*C);

raiz1= (-B + sqrt(delta))/(2*A);

raiz2= (-B - sqrt(delta))/(2*A);

//Impresão dos resultados

printf("As raizes sao: raiz 1= %.2f , raiz1=%.2f \n", raiz1, raiz2);

system ("pause");

}

Page 45: Curso de Programação Computadores - feg.unesp.br · sexo 4.1 –Variáveis Algoritmos 6 ... outros caracteres podem ser letras, dígitos numéricos e alguns caracteres especiais.

Algoritmos 89

Unesp-Campus de Guaratinguetá

AutoresAutoresAutoresAutoresAutoresAutoresAutoresAutores

Prof. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal TavaresProf. Dr. Aníbal Tavares

Profa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda RibeiroProfa. Dra. Cassilda Ribeiro

4 - Conceitos Básicos sobre Algoritmos e Linguagem C