• Nenhum resultado encontrado

Curso de Programação Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Curso de Programação Computadores"

Copied!
45
0
0

Texto

(1)

Unesp – Campus de Guaratinguetá

Linguagem C

Curso de Programação Computadores

Prof. Aníbal Tavares

Profa. Cassilda Ribeiro

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.

(2)

Algoritmos 3



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’

31ff502

Exemplo 1.

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).

(3)

Algoritmos 5



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 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

(4)

Algoritmos 7



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 Unesp-Campus de Guaratinguetá

12

5

13

2

8

6

10

3

3

4

5

1

C

B

A

Caso

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: A

2

= B

2

+ C

2

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

(5)

Algoritmos 9

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 significativo

tais 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 ligeiramente

dependendo da linguagem de programação ou do sistema de

computador em utilização.

4.1.1 - Nomes de Variáveis

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 d

caractere, 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...

(6)

Algoritmos 11

Exemplos de nomes

válidos

Lado1 A3 Caixa_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

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

constantes

constantes

e

e

variáveis.

variáveis.

  

 ConstantesConstantessão os valores que não variam em todas as aplicações da fórmula. Na fórmula acima os valores4, 3 e π

são chamados de constantes;

 

 VariáveisVariáveissã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

4

R

V

=

π

4.1.2 - Tipos de Variáveis

(7)

Algoritmos 13

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

4

R

V

=

π

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ável

variá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.

(8)

Algoritmos 15

Resumindo:



O

tipo

de uma

variável

variável

define os valores

define 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 Unesp-Campus de Guaratinguetá Algoritmo

C

Inteiro

int

Real

float

Real

double

Caractere

char

Cadeia

char [ ]

Lógica

int

float

Descrição

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

Representa números entre ±3.4x10-38e ±3.4x10+38.

Ocupa 4 bytes de memória.

Representa números entre ±1.7x10-308e ±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.

(9)

Algoritmos 17

ALGORITMO Exemplo 3

ALGORITMO 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); FIM

FIM

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> main

main()() {

{ floatfloatlado1, lado2;lado1, lado2; lado1 = 1.1;

lado1 = 1.1;

lado2= 3.2;

lado2= 3.2;

printf

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

system

system((“pause”“pause”);); }

}

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

Atribuição de valor Impressão do valor do tipo

REAL (f ⇔ float)

4.1.3 - Definição de Variáveis

Unesp-Campus de Guaratinguetá

i

i

)

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

reais

reais

e que estejam entre ±3.4x10

e que estejam entre

-38

e ±3.4x10

e

+38

,

,

pois estas variáveis são do tipo REAL (

pois estas variáveis são do tipo REAL (

float

float

na linguagem

na linguagem

C).

C).

O Exemplo anterior nos informa que:

O Exemplo anterior nos informa que:

ii

ii) Atribuímos à variável

) Atribuímos à variável

“lado1”

“lado1”

o

o

valor 1.1.

valor 1.1.

e

e

à variável

à variável

“lado2”

“lado2”

o

o

valor 3.2.

valor 3.2.

(10)

Algoritmos 19 // 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 4 ALGORITMO 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) FIM FIM Cálculo da hipotenusa: 2 2

b

a

c

=

+

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

4.1.3 - Definição de Variáveis

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

(11)

Algoritmos 21

// Programa Exemplo 5

// Programa Exemplo 5

// Colocar aqui as Bibliotecas do Exemplo 4 ! main

main()() {

{

float

floatlado1;lado1; printf

printf((“Digite L1:”“Digite L1:”);); scanf

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

lado1 =

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

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

system((“pause”“pause”);); }

}

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

ALGORITMO Exemplo 5 ALGORITMO Exemplo 5 VARIÁVEIS VARIÁVEIS LADO1: REAL LADO1: REAL INICIO INICIO

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

Leia (LADO1) Leia (LADO1)

LADO1 ←←sqrt(LADO1) Escreva(“raiz de L1 =”,lado1) FIM

FIM

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(“ % ”,&);

Unesp-Campus de Guaratinguetá ALGORITMO Exemplo 6 ALGORITMO Exemplo 6 VARIÁVEIS VARIÁVEIS A,B,C: INTEIRO; A,B,C: INTEIRO; INICIO INICIO 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); FIM FIM

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

<

<includeincludestdiostdio.h>.h> <

<includeincludestdlibstdlib.h>.h> main main()() { { int int a, b, c;a, b, c; printf

printf((“Digite a e b:”“Digite a e b:”);); scanf

scanf((““%d%d”%d%d”,&a,&b); ,&a,&b); c = a + b;

c = a + b;

printf

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

system

system((“pause”“pause”);); }

}

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

(12)

Algoritmos 23



Observe no exemplo 6que em linguagem algorítmica, utilizamos o Leia para 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 14e 33, eles serão armazenados respectivamente nas variáveis ae b.

A seguir, o programa irá calcular c = a + bc = a + b⇒⇒14+3314+33 e colocará o valor 47 na

caixinha da variávelc, e c, e por ultimo escreverá na tela os valores dea, b a, b ecc



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

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: A3

no algoritmo

A=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.

(13)

Algoritmos 25 // 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 16

A -13A 0

O valor da variável Aapós as três operações é igual à última atribuição realizada, ou seja, 0 (zero). Definição+Atribuição Atribuição Leitura ALGORITMO Exemplo 7 VARIÁVEIS A: INTEIRO INICIO A ← 16

Escreva (“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

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.

(14)

Algoritmos 27

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”

);

}

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 = 3

Y = 4

Se invertermos o comando

Y



Z

X



Y

Resultado Y = 4

X = 4

O resultado é alterado.

(15)

Algoritmos 29 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

Unesp-Campus de Guaratinguetá

4.2 - Constantes



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

programa

Tipo

Exemplos

char



‘a’

‘\n’

‘9’

int



123

1 1000

-23

long int



35000 -45

short int



10

-12 90

unsigned int



1000U

234U 4365U

float



123.45 3.1415e -10

double



123.45 -0.91254

(16)

Algoritmos 31

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çamos

valores 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.

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.

(17)

Algoritmos 33

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

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.

(18)

Algoritmos 35

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 foi

usado

%f

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 de

qualquer 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

(19)

Algoritmos 37

Exemplo 11

Nota1 = 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.

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);

(20)

Algoritmos 39

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

Unesp-Campus de Guaratinguetá

4.4

4.4

-

-

Expressões

Expressões

Definição:

uma

Expressão

é uma combinação de

variáveis, constantes e operadores. O resultado da

avaliação daquela expressão é o valor que é atribuído

à variável indicada.

Isto significa

que

o valor 27 será atribuído

à variável

conta

.

4

3

42

1

Expressão

conta

3

+

16

+

8

Exemplo 13

(21)

Algoritmos 41

4.4

4.4

-

-

Expressões

Expressõ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ões

Expressõ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"

);

(22)

Algoritmos 43

4.4

4.4

-

-

Expressões

Expressõ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

Unesp-Campus de Guaratinguetá

4.4

4.4

-

-

Expressões

Expressõ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"

);

(23)

Algoritmos 45

4.4

4.4

-

-

Expressões

Expressõ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

4

R

V

=

π

Unesp-Campus de Guaratinguetá

4.4

4.4

-

-

Expressões

Expressões

Termo2

Termo1

ado

Result

28,6

0.7

Termo2

7.4

13.6

Termo1

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.6

0.7

Termo2

Termo2

Termo1

o

Resultad

7.4

13.6

Termo1

15

Exemplo

∗∗∗∗

+

+

+

+

/

(24)

Algoritmos 47

4.4

4.4

-

-

Expressões

Expressõ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

Unesp-Campus de Guaratinguetá

4.4.1

4.4.1

Avaliação de Expressões

Avaliaçã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

resultado

resultado

resultado

resultado

pois, a variável

pois, a variável

pois, a variável

pois, a variável

Termo2

Termo2

Termo2

Termo2

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ógica

de Lógica

de Lógica

de Lógica

(25)

Algoritmos 49

4.4.1

4.4.1

Avaliação de Expressões

Avaliaçã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←0 A ←3 X ← A + 1 Escreva(“Valor de X=“,X) Fim

Exemplo 16:Suponha que as variá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 Unesp-Campus de Guaratinguetá

4.4.1

4.4.1

Avaliação de Expressões

Avaliaçã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←0 X ← X + 1 Escreva(“Valor de X=“,X) Fim

Exemplo 17: Suponha que as variá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

(26)

Algoritmos 51

4.4.1

4.4.1

Avaliação de Expressões

Avaliaçã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← 1 Y ←10 B ←B+1 Y ← Y -1

Escreva(“Valor de Y=“,Y) Escreva(“Valor de B=“,B) Fim

Exemplo 18: Suponha que as variá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 Unesp-Campus de Guaratinguetá

4.4.1

4.4.1

Avaliação de Expressões

Avaliaçã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

(27)

Algoritmos 53

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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

Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade das Operações

 As operações para avaliação de uma dada expressão obedecem à uma

regra 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.

(28)

Algoritmos 55

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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

+ 20

4

49

Exemplo 20:

Seja a expressão

x ←8+7*3+4*5

.

Qual será o

valor de X ?

Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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

(29)

Algoritmos 57

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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”); } Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade das Operações

2 ↑ 3 ↑ 2

2

9

1 2

512 = 2

3

2

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”); }

(30)

Algoritmos 59

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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 +

2

-

6

-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”); } Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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

(31)

Algoritmos 61

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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.

3

4

2

12

(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:

Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade 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).

(32)

Algoritmos 63

4.4.2

4.4.2

Prioridade das Operações

Prioridade das Operações

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

como expressões de Computador



A / B + 1

1

b

a +

a)

d

-c

b

a +

b)









( A + B ) / ( C – D )

1

b

a

+









A / B + 1

c)

f

e

-d

c

b

a +



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

d)

Unesp-Campus de Guaratinguetá

4.4.2

4.4.2

Prioridade das Operações

Prioridade das Operações

d

-c

b

a +



A + B / ( C – D )

e)

(

)

d

c

b

a +



( A + B ) * C / D

f)

g)

[

(

)

c

]

d

b

a +



( ( A + B ) C ) D

(33)

Algoritmos 65

4.4.3

4.4.3

Funções Embutidas

Funçõ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

Unesp-Campus de Guaratinguetá

4.4.3

4.4.3

Funções Embutidas

Funções Embutidas

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

Trigonomé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í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.

(34)

Algoritmos 67

4.4.3

4.4.3

Funções Embutidas

Funções Embutidas

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

Potê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 2

10

, 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

e

x

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.

Unesp-Campus de Guaratinguetá

4.4.3

4.4.3

Funções Embutidas

Funçõ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

(35)

Algoritmos 69

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ícios

Funções Embutidas : Exercícios

H= [ ( a + b ) ]

d

J= sen a + cos a

tg a

h= pow ( A + B, D);

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

K=

2a

ac

4

b

b

-

+

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

Unesp-Campus de Guaratinguetá

4.4.3

4.4.3

Funções Embutidas

Funçõ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

(36)

Algoritmos 71

4.4.3

4.4.3

Funções Embutidas

Funçõ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 = 60

double angu_rad;

printf(

"Este programa imprime os cosseno dos angulos fundamentais: \n"

);

angu_rad = M_PI/

2

;

//90 em radianos

printf(

"O cosseno de 90 graus eh %lf\n"

,cos(angu_rad));

angu_rad = M_PI/

6

;

//30 em radianos

printf(

"O cosseno de 30 graus eh %lf\n"

,cos(angu_rad));

angu_rad = M_PI/

4

;

//45 em radianos

printf(

"O cosseno de 45 graus eh %lf\n"

,cos(angu_rad));

angu_rad = M_PI/

3

;

//60 em radianos

printf(

"O cosseno de 60 graus eh %lf\n"

,cos(angu_rad));

system(

"pause"

);

}

//fim programa

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

(37)

Algoritmos 73

4.5.1 - Conversão implícita:

real para inteiro

4.5

4.5

-

-

Conversão de Tipo

Conversã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 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 -17 VI 392.73

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

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

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

(38)

Algoritmos 75

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: 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”

);

(39)

Algoritmos 77

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 I ser 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

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

.

(40)

Algoritmos 79

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”); } 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

(41)

Algoritmos 81

4.6

4.6 -

-

Aplicações

Aplicaçõ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 Unesp-Campus de Guaratinguetá

4.6

4.6 -

-

Aplicações

Aplicaçõ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”); }

(42)

Algoritmos 83

4.6

4.6 -

-

Aplicações

Aplicaçõ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");

}

Unesp-Campus de Guaratinguetá

4.6

4.6 -

-

Aplicações

Aplicaçõ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);

Referências

Documentos relacionados

Contribuições/Originalidade: A identificação dos atributos que conferem qualidade ao projeto habitacional e das diretrizes de projeto que visam alcançá-los, são de fundamental

Se os fornecedores de ITCM usam versões dos codecs de G.711 ou de G.729 que são diferentes daqueles usados nesse exemplo, você deve estaticamente configurar moldes de perfil de QoS

No entanto, em uma revisão mais recente de literatura sobre o termo informação, Capurro e Hjørland reconhecem problemas na abordagem histórica para a definição do termo

a) Ecocardiograma transtorácico: exame de ultrassom do coração para ver a anatomia e a função detalhadas do coração. b) Ultrassom das artérias do pescoço (ultrassom de

EF2: Cada equipe poderá jogar cada um dos três tempos com 7 jogadores, sendo que os sete jogadores que jogaram o primeiro tempo não poderão jogar o segundo tempo nem o terceiro

O parlamentar da Estância Turística de Ri- beirão Pires visitou o tam- bém vereador Severino do MSTU (Movimento dos Sem-Terra Urbanos) e o prefeito Átila Jacomussi, da cidade

Este processo de esclarecimento seria feito pelo próprio indivíduo, dotado de racionalidade, consciente de seus atos, fazendo suas opções a respeito dos temas

As informações constantes deste material podem auxiliar o investidor em suas decisões de investimento, porém o investidor será responsável, de forma exclusiva,