• Nenhum resultado encontrado

Unidade-1-2-3-LTP B1 - 2019

N/A
N/A
Protected

Academic year: 2021

Share "Unidade-1-2-3-LTP B1 - 2019"

Copied!
32
0
0

Texto

(1)

E DESENVOLVIMENTO DE SISTEMAS

1

Introdução à Computação

Programa -Definição

Um programa é um conjunto de instruções que o computador deve executar passo a passo.

É uma seqüência finita de instruções que, quando executadas, resolvem um problema ou desempenham uma tarefa específica.

Programar um computador requer duas exigências básicas: 1. Conhecer a linguagem na qual se vai programar;

2. Estruturar o raciocínio de forma a saber combinar os comandos desta linguagem, dentro de uma seqüência lógica, ou seja, de modo a atingirmos o objetivo perseguido.

E DESENVOLVIMENTO DE SISTEMAS

2 • Firmware(do inglês: estável, constante)

Conjunto de instruções que vêm gravadas nos computadores e que podem estar em memórias do tipo ROM (Read-Only Memory) ou incorporadas em seus circuitos.

• Programa fonte

É um programa elaborado em uma linguagem de alto nível. • Programa objeto

É um programa fonte traduzido para linguagem de máquina. Introdução à Computação

Conceitos

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Linguagem de Programação

É um conjunto de símbolos (comandos, identificadores, caracteres ASCII, etc.) e regras de sintaxe que permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador.

3 ASCII : American Standard Code for Information Interchange" (Código Padrão Norte-americano para Intercâmbio de Informações)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Linguagem de Programação

tabela ASCII

Binário D H G Binário D H G Binário D H G

0010 0001 33 21 ! 0100 0001 65 41 A 0110 0001 97 61 a 0010 0010 34 22 " 0100 0010 66 42 B 0110 0010 98 62 b 0010 0011 35 23 # 0100 0011 67 43 C 0110 0011 99 63 c 0010 0100 36 24 $ 0100 0100 68 44 D 0110 0100 100 64 d 0010 0101 37 25 % 0100 0101 69 45 E 0110 0101 101 65 e 0010 0110 38 26 & 0100 0110 70 46 F 0110 0110 102 66 f 0010 0111 39 27 ' 0100 0111 71 47 G 0110 0111 103 67 g 0010 1000 40 28 ( 0100 1000 72 48 H 0110 1000 104 68 h 0010 1001 41 29 ) 0100 1001 73 49 I 0110 1001 105 69 i 4

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

5 Conceitos básicos

CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

Linguagem de baixo nível:

Linguagem de máquina. Linguagem assembly (montagem).

Linguagem de alto nível.

linguagens de programação

Linguagem de baixo nível Linguagem de alto nível

Assembly Máquina Fortran Pascal Cobol

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

6 Conceitos básicos

CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

Linguagem de Baixo Nível e,

Linguagem de Alto Nível:

Estas designações não indicam o grau de sofisticação dos

programas, mas sim indicam o seu envolvimento com o

Hardware.

(2)

E DESENVOLVIMENTO DE SISTEMAS

7 CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

Linguagem de baixo nível:

 Utilizam mnemônicos para representar instruções elementares  Ex: Assembly

O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A idéia do assembly é usar um comando em substituição a cada instrução de máquina.

E DESENVOLVIMENTO DE SISTEMAS Linguagem de Programação

Assembly é chamado de linguagem de baixo nível, por nele

utilizarmos diretamente as instruções e endereços do

processador e memória,

8

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

9 Conceitos básicos

CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

 Linguagem de alto nível:

 São linguagens procedurais, pois sua forma de descrever as ações está mais próxima da linguagem humana. Elas são , em geral , estruturadas a nível de software e por isso , na maioria dos casos , independem da máquina onde os programas serão executados.

 Os aplicativos, como processadores de texto, planilhas, jogos rodam sobre os programas residentes (baixo nível), não precisando acessar diretamente ao hardware, sendo por isso chamados de softwares de alto nível.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

10 Conceitos básicos

CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO Linguagem de alto nível:

 Numa linguagem de alto nível temos várias funções prontas, o que facilita muito a programação, mas em compensação torna em muitos casos o programa maior e mais pesado, já que o compilador jamais conseguirá gerar um código tão otimizado quanto um programador experiente conseguiria.

 Utiliza instruções próximas da linguagem humana de forma a facilitar o raciocínio. Exemplos:

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Linguagem de Programação

Linguagem C

 O C foi desenvolvido durante a década de 70, mas

ainda é largamente utilizado. A grande vantagem do

C é permitir escrever tanto programas extremamente

otimizados para a máquina, como seria possível

apenas em assembly, e ao mesmo tempo vir com

várias funções prontas, como uma linguagem de

alto nível, que podem ser utilizadas quando não for

necessário gerar um código tão otimizado.

11

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

12

Programa

PROCESSOS DE CONVERSÃO DE PROGRAMAS Qualquer código fonte (programa escrito em linguagem de programação) precisa ser convertido para a linguagem de máquina (código binário). A conversão é feita através de um programa específico para cada linguagem de programação, chamado programa tradutor .

 As formas de tradução utilizadas são:  Montagem,

 Compilação, e  Interpretação.

(3)

E DESENVOLVIMENTO DE SISTEMAS

13

Programa

Algumas observações

(fonte: http://www.inf.ufsc.br/~j.barreto/cca/arquitet/arq4.htm)

 Existem três métodos básicos de abordagem na tradução de linguagem de alto nível para linguagem de máquina:

 - INTERPRETADOR  - COMPILADOR  - TRADUTOR

Terceiro Método: TRADUTOR

Neste método, o computador ao invés de armazenar as instruções do programa fonte tal como lhe são fornecidas, ele transforma-as em códigos intermediários, que não exigem tanto espaço de memória como as instruções originais. Estas instruções intermediárias são em seguida transformadas em linguagem de máquina e executadas, funcionando daí por diante como no INTERPRETADOR.

Neste método o programa conversor é conhecido como TRADUTOR.

E DESENVOLVIMENTO DE SISTEMAS

14

Programa

Algumas observações

(fonte: http://www.hardware.com.br/termos/assembler) Os compiladores de várias linguagens de alto nível fazem a compilação dos programas em duas etapas, na primeira transformando o código fonte em código Assembly e em seguida gerando o binário com a ajuda de um Assembler.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

15 PROCESSOS DE CONVERSÃO DE PROGRAMAS

Tradutores

 São programas que convertem um programa de usuário escrito em uma linguagem para uma outra linguagem.  A linguagem na qual o programa original está expresso é

chamado linguagem-fonte ou programa-fonte.

 A linguagem para qual ele será convertido é chamado linguagem-alvo (linguagem objeto ou programa objeto).  Tanto a linguagem fonte quanto a linguagem alvo definem níveis

específicos de linguagem.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

16 Programa

 Programa ou linguagem fonte:

 É um programa elaborado em uma linguagem de alto nível.

 Programa objeto ou Linguagem alvo:

 É um programa fonte traduzido para linguagem de máquina.

Programa objeto ≠ Programa orientado a objeto (POO)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Compilação

 É o processo de conversão de programas escritos em linguagem de alto nível para o código binário. Esta tarefa é realizada por um programa chamado compilador, que é específico para a linguagem de alto nível na qual o programa fonte foi escrito em microcomputadores.

 Não há a necessidade do compilador ser específico para UCP utilizada.

17

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Compilação

 Na compilação , a tradução é do tipo um para vários , isto é , um único comando de linguagem de alto nível é convertido para várias instruções de máquina, na maioria dos casos.

 O compilador analisa o código fonte , comando por comando e realiza várias tarefas , dependendo do comando analisado e , ao final, gera um programa em linguagem de máquina denominado código objeto ou módulo objeto; porém, ainda não executável, diferentemente da montagem.

(4)

E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Compilação

19 Programa escrito em Linguagem de máquina Programa escrito em Linguagem

de Alto nível COMPILAÇÃO

Compilador Código fonte

Código objeto

E DESENVOLVIMENTO DE SISTEMAS

20

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA

OBJETO

Compilação:

Ocorre quando a linguagem fonte for uma linguagem de

alto nível (Java, C) e a linguagem alvo (objeto) for uma

linguagem de máquina numérica ou uma representação

simbólica dessa linguagem .

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

21

Compiladores

São os responsáveis pela “tradução” dos programas em

linguagem de máquina gerando um arquivo de execução.

A partir de um arquivo de texto contendo um programa

elaborado em determinada linguagem, eles geram um outro

arquivo de maneira que o computador “entenda” as instruções

contidas nele e as execute.

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA

OBJETO

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Compilação

 Na Compilação, o programa original, expresso na linguagem-fonte, não é executado diretamente. Ele precisa ser convertido para um programa equivalente, conhecido como programa binário executável, que será executado após o término do processo de tradução. A compilação envolve 2 passos distintos:

 Geração de um programa equivalente na linguagem-alvo, e  Execução do programa obtido no passo 1.

22

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Interpretação

Nas linguagens compiladas, a conversão é realizada duas

etapas (compilação e linkedição), gerando programas

diferentes (módulo objeto e módulo de carga). Na

interpretação,

o

programa

interpretador

realiza

diretamente as tarefas de compilação e linkedição de cada

comando , individualmente, sem distinção das etapas.

23

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Interpretação

 Neste processo, o programa fonte não é convertido para nenhum produto intermediário, como na compilação. Cada comando é convertido para código de máquina e passado imediatamente para a execução. Desta forma, após a interpretação do ultimo comando, o programa estará completamente executado.

 Quando o interpretador encontra um erro no programa fonte, suspende a execução do programa e emite uma mensagem de erro. Após a correção, o programa tem que ser interpretado a partir do seu início.

(5)

E DESENVOLVIMENTO DE SISTEMAS

Interpretação

25 Edição do Programa Fonte Corrigir o erro Interpretação Sim Erro ? Não Execução

Como no processo de interpretação não é gerado código

executável

, é necessário manter armazenado o código

fonte e o programa interpretador.

E DESENVOLVIMENTO DE SISTEMAS

FORMAS DE TRADUÇÃO DE PROGRAMA FONTE PARA PROGRAMA OBJETO

Interpretadores

 Os interpretadores são programas que não geram um novo arquivo de forma que o computador possa entender as instruções. Eles lêem, interpretam e executam as instruções contidas no programa, comando por comando, o que os torna mais lentos do que os compiladores, uma vez que neste últimos não existe a necessidade de interpretação, pois as instruções já estão codificadas.

 No processo de interpretação existe apenas um único passo: a execução do programa original na linguagem-fonte para a linguagem objeto.

26

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

27 Algoritmos

 Um algoritmo é formalmente uma seqüência finita de passos que

levam a execução de uma tarefa.

 Podemos pensar em algoritmo como uma receita, uma seqüência

de instruções que tem a função de atingir uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.

 Como exemplos de algoritmos podemos citar os algoritmos das

operações básicas de uma calculadora (adição, multiplicação, divisão e subtração de números reais decimais).

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

28 Desenvolvendo Algoritmos

 O algoritmo deve ser fácil de se interpretar e fácil de se codificar.

 Ele deve ser o intermediário entre a linguagem falada e a

linguagem de programação.

 São independentes das linguagens de programação e não existe

um formalismo rígido de como ele deve ser escrito.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

29 Regras para construção do Algoritmo

Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:

Usar somente um verbo por frase;

Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática ;

Usar frases curtas e simples; Ser objetivo;

Procurar usar palavras que não tenham sentido dúbio.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

30 Fases para construção do Algoritmo

Ao montar um algoritmo, precisamos primeiro dividir o problema

apresentado em três fases fundamentais.

Entrada

Processamento

Saída

São os dados de entrada do

algoritmo

São os procedimentos utilizados para chegar ao resultado final

São os dados já processados

O que preciso? ao que quero?Como chegar O que quero?

A entrada de dados será feita através da instrução ler

(6)

E DESENVOLVIMENTO DE SISTEMAS 31 Entrada Entrada Entrada Processamento Saída E DESENVOLVIMENTO DE SISTEMAS 32 Ferramentas para construção do Algoritmo

Fluxogramas (diagramas de bloco ou diagrama de fluxo) Pseudocódigo

Diagrama de Chapin (cartas n-s)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

33 Estruturas básicas para construção de algoritmos

Nas “Operações Lógicas”, verificamos que na maioria das vezes

necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com três tipos de estrutura:

A estrutura Seqüencial ou Seqüenciação ; A estrutura de Decisão ou Seleção e, A estrutura de Repetição ou Iteração .

Estruturas básicas para construção de algoritmos

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

34 Ferramentas para construção do Algoritmo

Pseudocódigo

É uma pseudolinguagem de programação que permite pensarmos no problema e não na máquina que vai executar o algoritmo. Além disso, não perdemos a flexibilidade e continuamos a ter a proximidade com a linguagem humana, facilitando, portanto, a interpretação. PORTUGOL=simbiose do Português com o ALGOL e PASCAL Algoritmo Soma Variaveis A,B, S, : Real Inicio Leia (A,B) S=A+B Escreva (S) Fim algoritmo "soma" var a,b,c: real inicio

escreva("Entre com o primeiro numero:") Leia (a)

Escreva("Entre com o segundo numero:") Leia (b)

c<-a+b

Escreval("A soma é:",c) fimalgoritmo

Soma.alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

35 Exemplo

Imagine o seguinte problema: calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde:

Média Final =P1+P2+P3+P4 4 Para montar o algoritmo proposto, faremos três perguntas: a)Quais são os dados de entrada?

R: Os dados de entrada são P1, P2, P3 e P4 b) Qual será o processamento a ser utilizado? c) Quais serão os dados de saída?

R: Os dados de entrada são P1, P2, P3 e P4

R: O procedimento será somar todos os dados de entrada e dividi-los por 4

R: O dado de saída será a média final

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

36 Construindo o Algoritmo do Exemplo

Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde:

Algoritmo Algoritmo Media Variaveis P1,P2,P3,P4,M : Real Inicio Leia (P1,P2,P3,P4) M=(P1+P2+P3+P4)/4 Escreva (M) Fim media.alg algoritmo "media" var media,nota1,nota2,nota3,nota4:real inicio

Escreval("Entre com as 4 notas") Leia(Nota1)

Leia(Nota2) Leia(Nota3) Leia(Nota4)

Media:=(Nota1 + Nota2 + Nota3 +nota4)/4 Escreva(" A media é:",media)

(7)

E DESENVOLVIMENTO DE SISTEMAS

37 Estrutura de um algoritmo em Pseudocódigo: Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Início <corpo_do_algoritmo> Fim. onde: E DESENVOLVIMENTO DE SISTEMAS 38 Estrutura de um algoritmo – Pseudocódigo (continuação): Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo.

<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distinguí-lo dos demais.

<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.

<subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os subalgoritmos (funções e procedures)

Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Algoritmo Saída de Dados Escreva (“Caracteres”) Escreval(“Caracteres”) 39 Algoritmo “Estrutura" Var Inicio Fimalgoritmo Escreval(“Caracteres”)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Exercício

Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido apresente na tela do computador o nome do usuário (seu nome) e o seu endereço:

40 Nome e endereço.alg

Algoritmo "Nome e Endereço" Var

Inicio

Escreval("#########Nome e Endereço#########") Escreval()

Escreval(" Meu nome é:")

Escreval(" Pedro Carlos da Silva Euphrásio ") Escreval("Meu endereço:")

Escreval(" Rua H-30B, número 110") Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Exercício

Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido apresente na tela do computador uma receita de bolo. Essa receita deverá inicialmente apresentar na tela os seguintes ingredientes:

2 xícaras (chá) de açúcar; 3 xícaras (chá) de farinha de trigo; 4 colheres (sopa) de margarina; 3 ovos; 1 e 1/2 xícara (chá) de leite; 1 colher (sopa) bem cheia de fermento em pó

Posteriormente o algoritmo deverá apresentar o modo de fazer o bolo a) Bata as claras em neve e reserve.

b) Misture as gemas, a margarina e o açúcar até obter uma massa homogênea. c) Acrescente o leite e a farinha de trigo aos poucos, sem parar de bater. d) Por último, adicione as claras em neve e o fermento.

e) Despeje a massa em uma forma grande de furo central untada e enfarinhada. f) Asse em forno médio 180 °C, preaquecido, por aproximadamente 40 minutos ou ao

furar o bolo com um garfo, este saia limpo.

41 Receita de Bolo,alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Algoritmo Entrada de Dados Ler (Var) Saída de Dados Escreval(“frase e ”, variável) 42 Algoritmo “Estrutura" Var Char nome Inicio Fimalgoritmo Leia(nome)

Escreva(“Entre com o Nome”) Escreva(“Nome: ”, nome)

(8)

E DESENVOLVIMENTO DE SISTEMAS Exercício

Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido solicite o nome e a rua em que o usuário reside e logo após faça a impressão dessas informações na tela do computador 43 Nome e endereço2.alg [email protected] E DESENVOLVIMENTO DE SISTEMAS 44 Algoritmo "Nome e Endereço"

Var N1, Rua:caractere Inicio Escreval("#########Nome e Endereço#########") Escreval() //Entrada de Dados

Escreval(" Entre com o seu nome:") Leia( N1 )

Escreval(" Entre com a rua em que reside:") Leia( Rua )

//saída de dados

Escreva(" O nome do usuário é: ") Escreval( N1 )

Escreva(" O nome da rua em que reside é: ") Escreva( Rua )

Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Exercício

Escreva um algoritmo em pseudocódigo para que um software a ser desenvolvido solicite do usuário as seguintes informações: nome, rua, número, bairro, CEP e cidade.

O algoritmo deverá fazer a impressão de todas as informações na tela do computador

45 Nome e endereço3.alg

Algoritmo "Nome e Endereço" Var N1, Rua:caractere Inicio Escreval("#########Nome e Endereço#########") Escreval() //Entrada de Dados Escreval(" Entre com o seu nome:") Leia( N1 )

Escreval(" Entre com a rua em que reside:") Leia( Rua )

//saída de dados

Escreva(" O nome do usuário é: ") Escreval( N1 )

Escreva(" O nome da rua em que reside é: ") Escreva( Rua )

Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

46

Exercício: construa um algoritmo para determinar realizar a soma de

dois números reais, obedecendo a fórmula ao lado”.

Algoritmo "Soma" Var

S,A,B: real Inicio

Escreval("Algoritmo soma de dois números") Escreval("Entre com os dois números") Leia (A,B)

S := A + B

Escreva ("A soma dos números é:",S) Fimalgoritmo B A S  Soma Algoritmo “Soma” Var S,A,B: real Inicio Leia (A,B) S = A + B Escreva (S) Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

47

 Exercício: construa um algoritmo para determinar a velocidade final

“V” de um veículo sabendo-se a velocidade inicial “V0”, a aceleração “a”, o espaço final “S” e o espaço inicial “S0”.

Algoritmo Veloc Variaveis

V, Vo, a, DS, S, So : Real Inicio

Leia (Vo, a,S, So ) DS=S-So V=sqrt(Vo**2 + 2*a*DS) Escreva (V) Fim

s

a

v

v

2

2

.

.

0

s

a

v

v

2

2

.

.

0 2 Torricelli.alg Torricelli3.alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

48 Exercícios

Algoritmo "Estoque medio" Var

Est_Med, Qde_Min, Qde_Max : Real Inicio

Escreval("entre com o valor da quantidade mímnima e máxima")

Leia (Qde_Min, Qde_Max) Est_Med := (Qde_Min + Qde_Max)/2 Escreva ("O estoque médio é:",Est_Med) Fimalgoritmo

(9)

E DESENVOLVIMENTO DE SISTEMAS

49 Exercícios

Escrever um algoritmo que leia dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles.

Algoritmo distancia_dois_pontos Variáveis x2,x1,y2,y1,d : Real Inicio Leia (x1, y1) Leia (x2, y2) d = sqrt((x2-x1)**2+(y2-y1)**2) Escreva (d) Fim

 

2 1 2 2 1 2

x

y

y

x

d

Distancia2pontos.alg E DESENVOLVIMENTO DE SISTEMAS 50 Estruturas básicas para construção de algoritmos Identifique quais os tipos dos dados abaixo. Utilize (I)nteiro, (R)eal, (C)aractere e (L)ógico. ( ) 1000 ( ) “-900” ( ) VERDADEIRO ( ) -1,56 ( ) 34 ( ) 10,0 ( ) FALSO ( ) “José Francisco” ( ) “Verdadeiro” ( ) “27,23” Relembrando I C L R I R L C C C

O comando de atribuição permite fornecer um valor a uma certa variável. Os comandos de atribuição são:

=

(Exemplo: X=3)

:=

(Exemplo: X:=3)

(Exemplo: X ← 3)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

51 Estruturas básicas para construção de algoritmos Um nome de variável deve necessariamente começar com uma letra; Um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha ( _ ) e nenhum espaço em branco;

Um nome de variável não poderá ser uma palavra reservada a uma

instrução de programa. Exemplos de nomes de variáveis:

Salário – correto

1ANO – errado (não começou uma letra)

ANO1 – correto

a casa – errado (contém o caractere branco) SAL/HORA – errado (contém o caractere “/”)

SAL_HORA – correto

_DESCONTO – errado (não começou com uma letra)

Variáveis

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

52 Estruturas básicas para construção de algoritmos  São palavras que possuem significado especial na construção do algoritmo ou programa. Tais palavras não podem ser utilizadas como identificadores em um algoritmo. Veja algumas palavras reservadas:

Palavras reservadas

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

53 Teste de Mesa

Após desenvolver um algoritmo ele deverá sempre ser testado.

Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.

Veja o exemplo: distância 1

distância 2 distância 3 Utilize a tabela ao lado:

Distância (Km) Tempo (h)

S1 30 1

S2 60 2

S3 75 2,5

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

54 Teste de Mesa

Após desenvolver um algoritmo ele deverá sempre ser testado.

Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.

Veja o exemplo: x y soma c 1 2 0 2 1+5 = 6 2 0+6+2=8 3 6+5 = 11 2 8+11+2=21 4 11 2-2 = 0 21+11+0=32 5 11 0-2 = -2 32+11-2=41 6 c=2, x=1, y=2, soma=0 Enquanto (c< =5) faça Se (c<=3) Então x = x + 5 Senão y = y - 2 Fim-Se Soma = soma + x + y c = c + 1 Fim-enquanto

(10)

E DESENVOLVIMENTO DE SISTEMAS

55 Estruturas básicas para construção de algoritmos

Nas “Operações Lógicas”, verificamos que na maioria das vezes

necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com três tipos de estrutura:

A estrutura Seqüencial ou Seqüenciação ; A estrutura de Decisão ou Seleção e, A estrutura de Repetição ou Iteração .

Estruturas básicas para construção de algoritmos

E DESENVOLVIMENTO DE SISTEMAS

56 É representada pela conexão de dois ou mais símbolos de processamento, ligados por um símbolo indicativo do sentido do fluxo de execução. Os comandos são executados numa seqüência pré-estabelecida. Cada comando somente é executado após o término do comando anterior. Todo algoritmo é uma seqüência. A seqüenciação é aplicada quando a solução do problema pode ser decomposta em passos individuais.

Estrutura Sequencial

Comando 2 Comando 1 Slide 60

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

57

Os comandos de decisão ou desvio fazem parte das técnicas de

programação que conduzem a estruturas de programas que não são totalmente seqüenciais.

Com as instruções de SALTO ou DESVIO pode-se fazer com que o

programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. As principais estruturas de decisão são:

Estruturas de decisão do tipo “Se”:

 “Se então”  “Se então Senão”, e

Estruturas de decisão do tipo “Escolha”

 “Caso Selecione”

Estruturas de Decisão ou Seleção

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

58 Estruturas de Decisão Se Então”

Fazer um algoritmo utilizando a Pseudolinguagem para realizar a

conversão da velocidade de Km/h para m/s e a conversão de m/s para Km/h. Entradas: Saída: Processamento: 6 , 3 1 3600 1000 1 3600 1 1000 1 036 , 0 001 , 0 036 , 0 001 , 0 1 1   x h km s m h km s m

8

...

27777

,

0

6

,

3

1

3600

1000

1

1

s

m

h

km

s

m

h

km

Entradas: Opção e velocidade;

Saída: Velocidade;

Processamento: V=V/3,6 ou V=V*3,6.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

59 Estruturas de Decisão Se Então”

Fazer um algoritmo utilizando a Pseudolinguagem para realizar a

conversão da velocidade de Km/h para m/s e a conversão de m/s para Km/h.

Entradas: Opção e velocidade;

Saída: Velocidade; Processamento: V=V/3,6 ou V=V*3,6. Algoritmo "Conv_Veloc" Var V: real opcao:inteiro Inicio

Escreval("Escolha (1) Km/h para m/s (2) m/s para km/h") Leia (opcao)

Escreval ("Entre com o valor da velocidade") Leia (V) Se (opcao=1) Entao V:=V/3,6 Escreval("A velocidade em m/s é", V) Senao V:=V*3,6 Escreval("A velocidade em km/h é", V) Fimse fimalgoritmo Conver_veloc.alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 60 Exercício: idad e>= 18 V F Algoritmo Verif_Maioridade Var Idade: inteiro Início

Leia Idade Se Idade >=18

Então

Escreva “Maior de idade” Senão

Escreva “Menor de idade” Fim_se Fim Cmd 1 Cmd 2 Inicio Idade “Maior de idade” “Menor de Idade” Fim

Fazer um algoritmo utilizando a Pseudolinguagem para realizar a leitura da idade de indivíduos, sendo que, se a idade for maior ou igual a 18 anos, escrever “Maior de idade”, se for menor que 18 anos, escrever “Menor de idade”.

(11)

E DESENVOLVIMENTO DE SISTEMAS

61 Comandos de Decisão (Desvio condicional encadeado ou aninhado) Existem casos em que é necessário se estabelecerem verificações de condições sucessivas. Quando uma ação é executada, ela poderá ainda estabelecer novas condições, isso significa condições dentro de condições. Esse tipo de estrutura poderá ter diversos níveis de condição, sendo chamados de aninhamentos ou encadeamentos. O segundo encadeamento pode ser tanto para uma condição verdadeira quanto uma condição falsa.

comandos ...

se (<condição1>) então

<comandos para condição1 verdadeira> senão

se (<condição2>) então

<comandos para condição2 verdadeira, porém condição1 Falsa> senão

<condição1 e condição2 falsas> fim_se fim_se ... comandos E DESENVOLVIMENTO DE SISTEMAS 62

Comandos de Decisão “Se então Senão”

Exercício

Escreva um algoritmo que apresenta as seguintes condições: a) Se a média for menor que 5.0 o aluno é reprovado.

b) Se a média for maior ou igual a 5.0 e menor que 7.0, o aluno deverá fazer outra prova.

c) Se a média for maior ou igual a 7.0, o aluno está aprovado. Media < 5.0

5.0<=Media<7.0 Media>=7.0

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

63 Comandos de Decisão “Se então Senão”

Algoritmo Aprovação Var Media: real Início

Leia Media Se Media >=5,0

Se Media >=7,0

EntãoEscreva “ Aluno aprovado” Senão

Escreva “Outra avaliação” Senão

Escreva “Aluno Reprovado” Fim_se

Fim

Media 5 7 condicional.alg Media 4 notas.cpp

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

64 Estruturas básicas para construção de algoritmos

Escreva um algoritmo utilizando pseudolinguagem e fluxograma

para determinar o maior entre dois números reais dados. Exercícios Algoritmo Var Início Fim. Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> Início <corpo_do_algoritmo> Fim. Algoritmo Maior Var A, B: real Início

Escreva “Algoritmo para comparar dois números” Escreva “Digite o primeiro número” Leia A

Escreva “Digite o segundo número” Leia B Se A>B então Escreva A senão Escreva B Fim_se Fim. Entradas: A e B Processamento: A>B Saída: Maior (A e B)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 65 Pseudocódigo Algoritmo Maior Var A, B: real Início

Escreva “Algoritmo para comparar dois números” Escreva “Digite o primeiro número” Leia A

Escreva “Digite o segundo número” Leia B

Escreva “O maior é:” Se A>B então Escreva A senão Escreva B Fim_se Fim.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

66

 Nessa estrutura pode haver uma ou mais condições a serem

testadas e um comando diferente associado a cada uma dessas condições.

Exemplo: escreva um algoritmo que tem comoentrada salárioe

profissão de funcionáriosde uma empresa. Oprocessamentodesse

algoritmo deveráapresentarosalário reajustadodos profissionais

obedecendo os critérios abaixo:

Salário de técnico e auxiliar deve ser reajustado em 50%; Salário de gerente deve ser reajustado em 30%; Demais salários devem ser reajustado em 10%.

Estruturas de Decisão do tipo Escolha “Caso Selecione”

Entradas: Salário e Profissão

Processamento: Sal_Reaj=Sal*1.5 Sal_Reaj=Sal*1.3 Sal_Reaj=Sal*1.1

(12)

E DESENVOLVIMENTO DE SISTEMAS

67 Estruturas de Decisão do tipo Escolha “Caso Selecione”

Algoritmo "Salarios" Var Salario,Sal_Reaj: real

Profissao : caractere Inicio

Escreval("Entre com a profissão: Auxiliar, Tecnico, Gerente, Outro") Leia (Profissao)

Escreval("Entre com o salário") Leia (Salario) Escolha Profissao Caso "Tecnico","Auxiliar" Sal_Reaj:=1.5*Salario Caso "Gerente" Sal_Reaj:=1.3*Salario outrocaso Sal_Reaj:=1.1*Salario Fimescolha

Escreval ("Salario Reajustado = ", Sal_Reaj) Fimalgoritmo

Intc\aula7\Salario escolha caso profissao.alg

E DESENVOLVIMENTO DE SISTEMAS Exercício

Modifique o algoritmo abaixo, trocando a estrutura se...então...senão pela estrutura escolha ... caso

68 Algoritmo "calculadora"

Var x, a,b: real operacao : caractere Inicio

Escreval("Entre com a opção:") Escreval("(+)Soma (-) Subtração") Leia (operacao)

Escreval("Entre com o primeiro número") Leia (a)

Escreval("Entre com o segundo número") Leia (b) Se operacao="+" entao x:=a+b Senao Se operacao="-" entao x:=a-b Senao

Escreval ("Opção inexistente") Fimse

Fimse

escreval("O valor de a",operacao,"b = ",x) Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

69 Estruturas de Decisão do tipo Escolha “Caso Selecione” Algoritmo "Calculadora"

Var x, a,b: real operacao : caractere Inicio

Escreval("Entre com a opção:) Escreval("(^)Potenciação (*) Multiplicação ") Escreval(“(/) Divisão (+)Soma (-) Subtração") Leia (operacao)

Escreval("Entre com o primeiro número") Leia (a)

Escreval("Entre com o segundo número") Leia (b) Intc\aula7\ Calculadora.alg Escolha operacao Caso "^" x:=a^b Caso "*" x:=a*b Caso "/" x:=a/b Caso "+" x:=a+b Caso "-" x:=a-b outrocaso

Escreval ("Opção inexistente") Fimescolha

Escreval("O valor de a",operacao,"b é:",x) Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

70 Estruturas de Decisão do tipo Escolha “Caso Selecione”

Prof.= “tecnico ” Sim Não Inicio Salario, Prof. “Salario Reaj=” Sal_Reaj Fim Prof.= “gerente ” Sal.Reaj← 1.5*Salario Sal.Reaj← 1.3*Salario Sal.Reaj← 1.1*Salario Não Sim Algoritmo Salarios

Var Salario, Sal_Reaj: real; Prof : literal [20] Início

Leia Salario, Prof Escolha Prof Caso “Tecnico” Sal_Reaj←1.5*Salario Caso “Gerente” Sal_Reaj←1.3*Salario Outrocaso Sal_Reaj←1.1*Salario Fim_escolha

Escreva “Salario Reajustado =”, Sal_Reaj Fim

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

71

São também chamadas de Laços ou Loops

Quando uma seqüência de comandos deve ser executada

repetidas vezes, tem-se uma estrutura de repetição.

A estrutura de repetição, assim como a de decisão,envolve

sempre aavaliação de uma condição.

A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado.

Estruturas de Repetição

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

72

É uma variável de controle, inteira, que serve para controlar

quantas vezes um determinado trecho de programa foi executado. Contador

Algoritmo "PROGRAMA PARES" Var i, Par: INTEIRO Inicio

Par:=0;

para i:=1 ate 100 faca ESCREVAL (Par) Par := Par+2 Fimpara Fimalgoritmo I PAR Saída 1 0 0 2 2 2 3 4 4 ... ... ... LTP\Cem pares.alg LTP\NumerosPares.alg

(13)

E DESENVOLVIMENTO DE SISTEMAS

73 É uma variável de controle que serve para acumular valores. Considere que um programa, além de ler 100 valores e mostrar a quantidade de números positivos, deva mostrar a média dos valores positivos digitados.

Acumulador

ALGORITMO “SOMA_SALARIOS”; VAR SOMA, SALARIO : REAL; INICIO SOMA:=O; SALARIO:=0; ENQUANTO SALARIO>=0 INICIO LEIA (SALARIO); SOMA:=SOMA+SALARIO FIMENQUANTO; ESCREVAL (SOMA) FIM.

Salario Soma Saída

0 0 ---50 50 50 200 250 250 300 550 550 ... ... ... Aula7\Enquanto salario.alg E DESENVOLVIMENTO DE SISTEMAS 74 A estrutura de repetição é representada utilizando as estruturas:

Laço Contado:

 Quando se conhece quantas vezes o comando será executado.

Também conhecido como ESTRUTURA DE REPETIÇÃO

DETERMINADA.

Laços Condicionais:

 Quando não se conhece quantas vezes o comando será repetido pelo fato do comando está amarrado a uma condição sujeita à modificação pelas instruções do interior do laço. Também

conhecido como ESTRUTURA DE REPETIÇÃO INDETERMINADA.

Estruturas de Repetição

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

75

Na repetição determinada o algoritmo apresenta previamente a

quantidade de repetições.

Estruturas de Repetição Determinada

Algoritmo "PROGRAMA PARES" Var i, Par: INTEIRO Inicio

Par:=0;

para i:=1 ate 100 faca ESCREVAL (Par) Par := Par+2 Fimpara Fimalgoritmo Var i,PAR, X: INTEIRO

Inicio PAR:=0; x:=0 i:=1

ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

76

Na repetição determinada o algoritmo apresenta previamente a

quantidade de repetições.

Estruturas de Repetição Determinada

PROGRAMA REPETIÇÃO VAR I: INTEIRO;

PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALOR FINAL>> FAÇA

ÍNICIO <<COMANDO1>>; <<COMANDON>> FIM; Expressão Geral ALGORITMO “REPETICAO” VAR I:INTEIRO INICIO

PARA I:=1 ATE 10 FACA

ESCREVER (“SÃO PAULO não foi Campeão”) FIMPARA

FIM

Algoritmo "PROGRAMA PARES" Var i, Par: INTEIRO Inicio

Par:=0;

para i:=1 ate 100 faca ESCREVAL (Par) Par := Par+2 Fimpara Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

77

Exemplo:

Um determinado restaurante faz o registro da quantidade de refrigerantes vendidas no último ano. Considerando que cada refrigerante foi vendido a R$ 1,50, deseja-se saber o total arrecadado no último ano. Obviamente que, para este problema, tem-se como entrada a quantidade de refrigerantes vendidos, e como solução do problema (saída), o total arrecadado. Veja, a seguir, o respectivo algoritmo (algoritmo Restaurante_1).

Estruturas de Repetição Determinada

Algoritmo Restaurante_1 Variáveis Qtidade_Vendida : Inteiro Valor_Arrecadado : Real Início Leia Qtidade_Vendida Valor_Arrecadado  Qtidade_Vendida * 1.50 Escreva Valor Arrecadado

Fim

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

78

Exemplo:

Se desejarmos determinar o total arrecadado, em cada um

dos últimos três anos, o algoritmo poderia ser escrito conforme a seguir:

(14)

E DESENVOLVIMENTO DE SISTEMAS

79 Estruturas de Repetição Determinada

Algoritmo Restaurante_2 Variáveis

Qtidade_Vendida : Inteiro Valor_Arrecadado : Real Início

// Determinação do total arrecadado no último ano Leia Qtidade_Vendida

Valor_Arrecadado  Qtidade_Vendida * 1.50 Escreva Valor Arrecadado

// Determinação do total arrecadado no penúltimo ano Leia Qtidade_Vendida

Valor_Arrecadado  Qtidade_Vendida * 1.50 Escreva Valor Arrecadado

// Determinação do total arrecadado no antepenúltimo ano Leia Qtidade_Vendida

Valor_Arrecadado  Qtidade_Vendida * 1.50 Escreva Valor Arrecadado

Fim quantidade vendida1.alg

E DESENVOLVIMENTO DE SISTEMAS

80  O processo de repetição de um grupo de comandos é controlado por algum tipo de contador. Uma variável, que funciona como um contador, vai assumindo os valores 1, 2, 3 e assim por diante, até que atinja determinado valor, quando então, a repetição deve ser encerrada.

 Assim, considerando esses casos, podemos definir um comando de repetição mais simples, que faça com que uma determinada variável vá assumindo automaticamente valores seqüenciais, e que quando atingir determinado valor, o processo de repetição seja encerrado.

Estruturas de Repetição Determinada

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

81 Estruturas de Repetição Determinada

Algoritmo Restaurante_2 Variáveis

Qtidade_Vendida, Ano : Inteiro Valor_Arrecadado, Soma : Real Início

Soma:=0

Para Ano de 1 até 3 Faça Leia Qtidade_Vendida

Valor_Arrecadado  Qtidade_Vendida * 1.50 Escreva Valor Arrecadado

Soma:=Soma + Valor_Arrecadado Escreva Soma

Fim Para Fim

quantidade vendida2.alg

ano QVend VA Soma

0

1 100 150 150

2 200 300 450

3 300 450 900

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

82 Exercício:

Fazer um algoritmo para escrever os 50 primeiros números pares.

Estruturas de Repetição Determinada

PROGRAMA REPETIÇÃO VAR I: INTEIRO; PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE <<VALOR FINAL>> FAÇA

ÍNICIO <<COMANDO1>>; <<COMANDON>> FIM; Expressão Geral Algoritmo “numeros_pares" Var i,par: inteiro Inicio

par<-0

para i de 1 ate 50 faca escreval (par) par<- par+2 fimpara fimalgoritmo Par1.alg Entrada: 0-50 Processamento: par+2 Saída: números pares

PAR I Saída Escrever 0 1 0 2 2 2 4 3 4 ... ... ...

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

83 Estrutura de repetição indeterminada com validação inicial Estrutura de repetição indeterminada com validação final

Estruturas de Repetição Indeterminada

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

84 Estrutura de repetição indeterminada com validação inicial

É usada para repetir N vezes uma ou mais instruções. Tendo como vantagem o fato de não ser necessário o conhecimento prévio do número de repetições.

Estruturas de Repetição Indeterminada

PROGRAMA REPETIÇÃO VAR I: INTEIRO;

ENQUANTO <<CONDIÇÃO>> FACA

ÍNICIO

<<COMANDO1>>; <<COMANDON>> FIM;

(15)

E DESENVOLVIMENTO DE SISTEMAS

85

Exemplo

Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0.

Estruturas de Repetição Indeterminada com Validação Inicial

Exemplo

Faça um algoritmo que calcule a soma dos saláriosdos funcionários de uma empresa. O programa terminaquando o usuário digitar um

salário menor que 0. Entrada: salário

Processamento: somar salários Saída: escrever soma dos salários Término (condição): salário < 0

E DESENVOLVIMENTO DE SISTEMAS

86 Estruturas de Repetição Indeterminada com Validação Inicial

ALGORITMO SOMA_SALARIOS; VAR SOMA, SALARIO : REAL; INICIO SALARIO:=0; SOMA:=O; ENQUANTO SALARIO>=0 INICIO LEIA (SALARIO); SOMA:=SOMA+SALARIO FIMENQUANTO; ESCREVAL (SOMA) FIM.

Entrada Proces. Saída

Salario Soma Escrever (Soma)

0 0 ---50 50 50 200 250 250 300 550 550 ... ... ... Exemplo

Faça um algoritmo que calcule a soma dos saláriosdos funcionários de uma empresa. O programa terminaquando o usuário digitar um

salário menor que 0.

intcomp\ salario enquanto1.alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

87 Estrutura de repetição indeterminada com validação final

Sua validação é final fazendo com que a repetição seja executada pelo menos uma vez.

Estruturas de Repetição Indeterminada

PROGRAMA REPETIÇÃO VAR I: INTEIRO; REPITA <<COMANDO1>>; <<COMANDON>> ATE <<CONDIÇÃO>> Expressão Geral

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

88

Exemplo

Faça um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0.

Estruturas de Repetição Indeterminada com Validação Final

ALGORITMO “SOMA_SALARIOS” VAR

SOMA, SALARIO : REAL INICIO SOMA:=O; REPITA LEIA (SALARIO); SOMA:=SOMA+SALARIO ATE SALARIO<0; ESCREVAL (SOMA) FIM.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Exercício

Faça alterações no algoritmo abaixo para que ele utilize uma estrutura de repetição indeterminada para fornecer uma opção ao usuário de poder

continuar a fazer novas operações de soma.

89 Algoritmo "Soma"

Var S,A,B: real Inicio

Escreval("Algoritmo soma de dois números")

Escreval("Entre com os dois números") LEIA (A,B)

S := A + B

Escreva ("A soma dos números é:",S) Fimalgoritmo

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Exercício

Faça alterações no algoritmo abaixo para que ele utilize uma estrutura de repetição determinada para realizar a soma e a raiz quadrada dos 100

primeiros números pares.

90 Var i,PAR, X: INTEIRO

Inicio PAR:=0; x:=0 i:=1

ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 ESCREVAL(i,"o. par =",PAR) i:=i+1

PAR := PAR+2 Fimalgoritmo

(16)

E DESENVOLVIMENTO DE SISTEMAS

91 Linguagem de Programação C

Histórico

Unidade 2 - Noções básicas preliminares

2.1 - Estrutura/execução de um programa 2.2 - Tipos de dados

2.3 - Variáveis simples 2.4 - Declaração de variáveis

2.5 - Expressões aritméticas e lógicas; precedência de operadores 2.6 - Comando de atribuição

2.7 - Comandos de entrada e saída 2.8 - Bloco de instruções 2.9 - Arquivos de cabeçalho

E DESENVOLVIMENTO DE SISTEMAS

92 Linguagem de Programação C

O C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença. Se declarar uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for, por exemplo, só podem ser escritos em minúsculas pois senão o compilador não irá interpretá-los como sendo comandos, mas sim como variáveis.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

93 Linguagem de Programação C

O “C” e o “C++”

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

94 Linguagem de Programação C

Palavras Chaves

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

95 2.1 - Estrutura/execução de um programa

O que é linguagem estruturada?

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

96 2.1 - Estrutura/execução de um programa

O que é linguagem estruturada? #include <stdio.h>

#include <conio.h> #include "Matematica.h" int main() { float num_1, num_2, operacao; char op;

printf("\n Entre com a operacao desejada: (+), (-) ou para finalisar (.): \n"); scanf("%s",&op);

while (op != '.'){

printf("Entre com o 1o. Numero:\n "); scanf("%f",&num_1); printf("Entre com o 2o. Numero: \n"); scanf("%f",&num_2); switch(op){ case '+' :

operacao = soma(num_1,num_2); printf("\nA soma destes numeros e' %.2f", operacao); break;

case '-' :operacao = subtracao(num_1,num_2); printf("\nA subtracao destes numeros e' %.2f", operacao); break;

default : printf("Operador desconhecido\n"); }

printf("\n Entre com a operacao desejada: (+), (-) ou para finalisar (.): \n"); scanf("%s",&op);

} }

//“arquivo Matematica.h" float soma(float a, float b){

float soma1; soma1 = a + b; return(soma1);

}

float subtracao(float a, float b){ float sub;

sub = a - b; return(sub);

(17)

E DESENVOLVIMENTO DE SISTEMAS 2.1 - Estrutura/execução de um programa  A geração do programa executável a partir do programa fonte obedece a uma seqüência de operações antes de tornar-se um executável.  Depois de escrever o módulo fonte em um editor de textos, o programador aciona o compilador.

 Essa ação desencadeia uma seqüência de etapas, cada qual traduzindo a codificação do usuário para uma forma de linguagem de nível inferior, que termina com o executável criado pelo lincador.

E DESENVOLVIMENTO DE SISTEMAS 2.1 - Estrutura/execução de um programa

Editor (módulo fonte em C) Pré-processador (novo fonte expandido)

Compilador (arquivo objeto)

Lincador (executável)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

99 Linguagem de Programação C

Linkeditor

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

100 2.1 - Estrutura/execução de um programa

Linkeditor

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2.1 - Estrutura/execução de um programa As funções têm a seguinte estrutura:

tipo nome_da_funcao(parâmetros) { variáveis locais instruções em C } #include <stdio.h> main(void) { int i=1;

printf("Eu gosto de programar em C\n"); }

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2.1 - Estrutura/execução de um programa Assim o programa:

 Contém apenas uma função (a função main(), que é obrigatória) e que não tem parâmetros (void).

 Como instrução da função temos apenas a chamada a printf(), que escreve no vídeo a frase Eu gosto de programar em C  A instrução printf é uma função da biblioteca stdio.h.  A frase Eu gosto de programar em C é uma cadeia de caracteres

chamada de string.

 A combinação \n no fim da string indica uma mudança de linha (o carácter new lineou line feed).

 No final de cada instrução existe sempre um terminador - ; main(void)

{ int i=1;

printf("Eu gosto de programar em C\n"); }

(18)

E DESENVOLVIMENTO DE SISTEMAS 103 2.1 - Estrutura/execução de um programa Algoritmo "Primeiro_algoritmo" var inicio

Escreval(" Ola! Esse e' meu primeiro programa!") fimalgoritmo

#include <stdio.h> /* Um Primeiro Programa */ int main ()

{

printf ("Ola! Esse e' meu primeiro programa!!\n"); } E DESENVOLVIMENTO DE SISTEMAS 104 2.1 - Estrutura/execução de um programa Primeiro Programa #include <stdio.h> /* Um Primeiro Programa */ main () {

printf (" Esse e' meu primeiro programa!!\n "); return(0);

}

Biblioteca das entradas e saídas padronizadas Comentário

Função main

“{” chave que equivale a “início” Comando “printf” Retorno da função main

“}” chave que equivale a “fim” ou “fimalgoritmo”

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

105 2.1 - Estrutura/execução de um programa

Argumentos

 Argumentos são as entradas que a função recebe. É através dos

argumentos que passamosparâmetrospara a função. As funções printf() e scanf() são tipos de funções que recebem argumentos.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

106 2.1 - Estrutura/execução de um programa

Primeiro Programa Como colocar um Comentário em um programa

 O comentário ajuda a elucidar o funcionamento de um programa. No

programa anterior temos um comentário: /* Um Primeiro Programa */.  O compilador C desconsidera qualquer coisa que esteja começando com /* e terminando com */. Um comentário pode, inclusive, ter mais de uma linha.

 Quando o comentário é utilizado em apenas uma linha, pode-se utilizar também o //

/* Um Primeiro Programa */ ou // Um Primeiro Programa

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

107 2.1 - Estrutura/execução de um programa

Primeiro Programa int main()

 A linha int main() indica que estamos definindo uma função de nome main. Todos os programas em C têm uma função main, pois é esta função que será chamada quando o programa for executado. O conteúdo da função é delimitado por chaves { }.

 Quando a função for chamada o código que estiver dentro das chaves será executado seqüencialmente. A palavra int indica que esta função retorna um inteiro. O que significa este retorno será visto posteriormente, quando estudarmos um pouco mais detalhadamente as funções do C. A última linha do programa, return(0); , indica o número inteiro que está sendo retornado pela função, no caso o número 0.

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados

Geralmente nos sistemas UNIX os tipos int e long int são equivalentes e de tamanho de inteiros de 32 bits (4 bytes).

É possível que em outros sistemas o tipo int seja equivalente a um short int, ou seja, inteiro de 16 bits (2 bytes).

%c – leitura /escrita de caracter %d - leitura /escrita de números inteiros %f - leitura /escrita de números reais %s - leitura /escrita de caracteres

(19)

E DESENVOLVIMENTO DE SISTEMAS

109 2.7 - Comandos de entrada e saída

Entrada scanf()

Uma das mais importantes e poderosas instruções, servirá basicamente para promover leitura de dados (tipados) via teclado.

Sua forma geral é: scanf(“string de controle”, lista de argumentos); no momento, sobre string de controle, devemos saber:

%d - leitura de números inteiros %f - leitura de números reais %c - leitura de caracter %s - leitura de caracteres scanf(“%d”,&x); scanf(“%f”,&x) ; scanf(“%c”,&x) scanf(“%s”,&x) E DESENVOLVIMENTO DE SISTEMAS 110 2.7 - Comandos de entrada e saída

Entrada sintaxe: scanf ("%f",&valor);  %f : variável do tipo real

 &valor: o dado lido deverá ser armazenado no endereço (&) alocado para a variável “valor”

#include <stdio.h> int main () { float valor;

printf ("Entre com o preço: "); scanf ("%f",&valor); /* Entrada de Dados*/ printf ("\O preço do produto é %f reais.\n",valor); }

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

111 2.7 - Comandos de entrada e saída

Entrada sintaxe: scanf ("%d",& Qtde);  %d : variável do tipo inteiro

 & Qtde : o dado lido deverá ser armazenado no endereço (&) alocado para a variável “Qtde”

#include <stdio.h> int main () { Int Qtde;

printf ("Entre com a quantidade: "); scanf ("%d",& Qtde); /* Entrada de Dados*/ printf ("\A quantidade e’ %d unidades.\n", Qtde); }

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

112 2.7 - Comandos de entrada e saída

Entrada sintaxe: scanf ("%c",&opcao);  %c : variável do tipo caracter

 &opcao: o dado lido deverá ser armazenado no endereço (&) alocado para a variável “opcao”

#include <stdio.h> int main () { char opcao;

printf ("Entre com a Opcao: ");

printf (“(A) Inserir Usuario (B) Imprimir Usuario "); scanf ("%c",&opcao); /* Entrada de Dados*/ printf ("\A Opcao selecionada foi %c .\n", opcao); }

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

113 2.7 - Comandos de entrada e saída

Entrada sintaxe: scanf ("%s",&Nome);  %s : variável do tipo caracter

 & Nome : o dado lido deverá ser armazenado no endereço (&) alocado para a variável “opcao”

#include <stdio.h> int main () { char Nome;

printf (“Digite o seu primeiro nome: "); scanf ("%s",&Nome); /* Entrada de Dados*/ printf ("\o seu primeiro nome e’: %s .\n", Nome); }

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

114 2.7 - Comandos de entrada e saída

Função printf()

 A função printf() coloca na tela do computador o que se deseja imprimir: variáveis e/ou cadeia de caracteres.

 É por causa do uso da função printf() pelo programa que devemos incluir o arquivo-cabeçalho stdio.h.

 Veja os exemplos a seguir:

printf (" O Volume do paralelepipedo e %f .",v); printf (" Foram produzidas %d peças .",x); printf (" A letra escolhida foi %c .",letra) printf (" O nome do gerente e %s .",nome);

printf1

%d – escrita de no. inteiro %f - escrita de número real %c - escrita de caracter %s - escrita de (String) caracteres

(20)

E DESENVOLVIMENTO DE SISTEMAS 2.2 - Tipos de dados

Caracteres

 Os caracteres são um tipo de dado chamado de char. O C trata os

caracteres ('a', 'b', 'x', etc ...) como sendo variáveis de umbyte(8bits).

 Na linguagem C, também podemos usar um char para armazenar valores

numéricos inteiros, além de usá-lo para armazenar caracteres de texto. Para indicar um caractere de texto usamos apóstrofes.

E DESENVOLVIMENTO DE SISTEMAS 2.2 - Tipos de dados

Caracteres

No programa abaixo, %c indica que printf() deve colocar um caractere na tela que é o valor de Ch (a letra D).

#include <stdio.h> int main () { char Ch; Ch='D';

printf ("%c",Ch); // imprime o caracter D getch();

}

caracter 1

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados Caracteres

 Como vimos anteriormente, um char também é usado para armazenar um número inteiro. Este número é conhecido como o código ASCII correspondente ao caractere. Veja o programa abaixo:

#include <stdio.h> int main () { char Ch; Ch='D';

printf ("%d",Ch); /* Imprime o caracter como inteiro */ getch();

}

Este programa vai imprimir o número 68 na tela, que é o código ASCII correspondente ao caractere 'D' (d maiúsculo).

caracter 2

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados Strings

 Na linguagem C uma string é um vetor de caracteres terminado com um caractere nulo. O caracter nulo é um caractere com valor inteiro igual a zero (código ASCII igual a 0).

 O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '\0'.

 O assunto vetores será discutido posteriormente, mas veremos aqui os fundamentos necessários para que possamos utilizar as strings. Para declarar uma string, podemos usar o seguinte formato geral.:

char nome_da_string[tamanho];

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados Strings

 A expressão acima declara um vetor de caracteres (uma string) com número de posições igual a7.

 Note que, como temos que reservar um caractere para ser o terminador nulo, temos que declarar o comprimento da string como sendo, no mínimo, um caractere maior que a maior string que pretendemos armazenar.  Vamos supor que declaremos uma string de 7 posições e coloquemos a palavra João nela. Teremos:

char nome_da_pessoa [7];

J

O A O \0 ... ...

String1.cpp

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados Strings

 No caso anterior, as duas células não usadas têm valores indeterminados. Isto acontece porque o Cnãoinicializa variáveis, cabendo ao programador esta tarefa.

 Portanto as únicas células que são inicializadas são as que contêm os caracteres 'J', 'o', 'a', 'o' e '\0' .

 Para declararmos uma variável para receber um conjunto de caracteres também podemos escrever: char*var;

Exemplo: No exemplo seguinte a variável nome foi declarada como conjunto caracter e em seguida recebe uma constante string.

char* nome;

nome = "João Carlos de Oliveira Andrade"; string2.cpp

(21)

E DESENVOLVIMENTO DE SISTEMAS 2.2 - Tipos de dados

Inteiro

 Um tipo de objeto de dados determina como os valores dos dados são representados, que valores pode expressar, e que tipo de operações você pode executar com estes valores.

 O tipo inteiro permite a representação numérica e operações com números inteiros com até 4 bytes (dependendo do compilador).

int x; x=10;

inteiro.cpp

E DESENVOLVIMENTO DE SISTEMAS 2.2 - Tipos de dados Float (ponto flutuante)

 O tipo float permite a representação numérica e operações com números reais com até 4 bytes.

 3 = 11  2 = 10  10 = 1010  38 = 100110 float x; x=10.0; float.cpp

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

123

 Escreva o algoritmo abaixo em linguagem C

Algoritmo Veloc Variaveis

V, Vo, a, DS, S, So : Real Inicio

Escreva(“Entre com os valores de Vo, a, S e So”) Leia (Vo, a,S, So )

DS=S-So

V=sqrt(Vo**2 + 2*a*DS) Escreva (“A velocidade e:”,V) Fim

s

a

v

v

2

2

.

.

0

s

a

v

v

2

2

.

.

0 2 Torricelli.alg

Obs: a instrução que calcula uma raiz quadrada na linguagem C é: sqrt( ).

No escopo (início do código’) é necessário escrever a instrução #include <math.h>

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

124

Escreva em linguagem C o algoritmo abaixo escrito em

pseudocódigo

Algoritmo "Estoque medio" Var

Est_Med, Qde_Min, Qde_Max : Real Inicio

Escreval("entre com o valor da quantidade mímnima e máxima")

Leia (Qde_Min, Qde_Max) Est_Med := (Qde_Min + Qde_Max)/2 Escreva ("O estoque médio é:",Est_Med) Fimalgoritmo

Estoque medio.alg

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

125

Escreva em linguagem C o algoritmo abaixo escrito em

pseudocódigo

O algortimo faz a leitura de dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles.

Algoritmo distancia_dois_pontos Variáveis

x2,x1,y2,y1,d : Real Inicio

Escreva(“Entre com os pontos x1,y1 e x2,y2”) Leia (x1, y1)

Leia (x2, y2)

d = sqrt((x2-x1)**2+(y2-y1)**2) Escreva (“A distancia entre os dois pontos e:”,d) Fim

 

2 1 2 2 1 2

x

y

y

x

d

Distancia2pontos.alg

Obs: a instrução que calcula o quadrado de um número na linguagem C é: pow(x,2). No escopo (início do código’) é necessário escrever a instrução #include <math.h>

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2.2 - Tipos de dados

A tabela abaixo apresenta os tipos de dados simples e os tipos de dados modificados da linguagem C .

Tipo de dados Tamanho (bytes) Limite inferior Limite superior

char 1 -128 127

unsigned char 1 0 255

short int 2 -32768 32767

unsigned short int 2 0 65535

int 4 -231 +231- 1

long int 4 -231 +231- 1

float 4 -3.2×10±38 +3.2×10±38

double 8 -1.7×10±308 +1.7×10±308

(22)

E DESENVOLVIMENTO DE SISTEMAS 2.3 – Variáveis simples

Definição de variáveis

Variáveis são locais na memória do computador que guardam conteúdos que podem ser utilizados quando determinado programa está rodando. Em linguagem C, as variáveis devem ter um nome obedecendo determinadas condições:

 O nome da variável deve começar com uma letra ou sublinhado (_).  Esse nome não pode ser igual a uma palavra reservada, nem igual ao

nome de uma função declarada pelo programador, ou pelas bibliotecas do C.

 Variáveis de até 32 caracteres são aceitas.

 O C é "case sensitive" e portanto deve-se prestar atenção às maiúsculas e minúsculas.

E DESENVOLVIMENTO DE SISTEMAS 2.3 – Variáveis simples

O C tem 5 tipos básicos de variáveis: char, int, float, void, double.  O tipo char é utilizado para a impressão de variáveis que utilizam

caracteres,

 O tipo int é utilizado para a impressão de variáveis que utilizam números inteiros, como contadores e controladores de laços de execução.  O tipo float é utilizado para a impressão de variáveis que utilizam números

reais (ponto flutuante).

 O tipo double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão (números científicos).

 O void é o tipo vazio, ou um "tipo sem tipo".

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2.4 - Declaração de variáveis

Quando se faz a declaração de uma variável está se determinando que tipo de dado ela vai receber.

Sintaxe: A sintaxe para a declaração de variáveis é: tipo var_1;

O tipoé o tipo de dado, var_1é o nome da variável a ser declarada. Exemplo:

int i; float num;

char nome_1[20]; *nome_2;

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2.4 - Declaração de variáveis

Inicialização de variáveis

É possível, em C, declarar uma variável e já armazenar nela um valor inicial. Chamamos este procedimento de inicialização de uma variável.

Sintaxe: A sintaxe para a inicialização de variáveis é: tipo var_1=valor_1 [, var_2 = valor_2, ...];

O tipoé o tipo de dado, var_1é o nome da variável a ser inicializada e valor_1é o valor inicial da variável.

Exemplo: int i = 0, j = 100; float num = 13.5;

char nome_1 [20] = " Programa Teste ";

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

131 2.4 - Declaração de variáveis

Constantes  O C possui 4 tipos básicos de constantes:

Inteiras; de ponto flutuante; caracteres e, strings.

 Constantes inteiras e de ponto flutuante representam números de um modo geral.

 Caracteres e strings representam letras e agrupamentos de letras (palavras).

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

132 2.4 - Declaração de variáveis

Constantes Simbólicas

 Muitas vezes identificamos uma constante numérica por um símbolo como, por exemplo, Pi = 3,14159.

 Podemos definir um nome simbólico para esta constante, isto é, podemos definir uma constante simbólica que represente o valor.

 Sintaxe: A sintaxe da instrução de definição de uma constante simbólica é: #define nome valor.

 Onde #define é uma diretiva de compilação que diz ao compilador para trocar as ocorrências do texto nomepor valor. Observe que não há ; (ponto e vírgula) no final da instrução pois trata-se de um comando para o compilador e não para o processador.

 A instrução #define deve ser escrita antes da instrução de declaração da rotina principal.

Referências

Documentos relacionados

Acidente de Trabalho é o que ocorre pelo exercício do trabalho a serviço da empresa, provocando lesão corporal ou perturbação funcional que cause a morte, a perda ou

A clínica gestáltica tem o intuito de desenvolver um trabalho baseado na relação dialógica, que facilita o processo de autorregulação e ajustamento criativo para as pessoas.. Tais

• Lista de argumentos tipados como uma função; • Resposta tipada declarada ou inferida;. • Captura de contexto no escopo onde foi declarado; • Modificar o contexto no escopo

Os seus resultados apontam para a heterogênea distribuição da oferta dos serviços de média e alta complexidade entre as macrorregiões do Estado da Bahia, com

completamente minha opinião eu gostaria de salientar a esse respeito que a indiferença me parece significar propriamente o estado no qual a vontade está quando não

Considerada uma das maiores fabricantes de motores elétricos do mundo, a unidade de Motores oferece soluções para os mais variados tipos de aplicação, desde comerciais e

SiO2/MxOy – Óxido misto de sílica com um óxido metálico; HPLC – Cromatografia Líquida de alta eficiência; SiO2/SnO2 – Óxido misto de sílica e óxido de estanho; Pc

Considerada uma das maiores fabricantes de motores elétricos do mundo, a Unidade Motores oferece soluções para os mais variados tipos de aplicação, desde comerciais e residenciais