28
Slides trabalhados durante a quinta aula prática prática

Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Slides trabalhados durante a quinta aula práticaprática

Page 2: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Estruturas de Controle de Fluxo

3. Laços de repetição (continuação)

Exercício:

Construa um algoritmo, representando-oatravés de um pseudocódigo e de um

127127

através de um pseudocódigo e de umfluxograma, que leia da entrada padrão umnúmero inteiro positivo e retorne na saída padrãouma mensagem indicando se o número lido é ounão um número primo. As entradas devem servalidadas.

Page 3: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

algoritmo "exercício"var A, i, numeroDeDivisoes : inteiroinicio

repitaescreva ("Entre com um valor inteiro positivo: ")leia (A)

ate (A>0)numeroDeDivisoes <- 0para i de 1 ate A faca

se (A%i=0) entao

128128

se (A%i=0) entaonumeroDeDivisoes <- numeroDeDivisoes + 1

fimsefimparase (numeroDeDivisoes = 2) entao

escreva ("O número ",A," é primo")senao

escreva ("O número ",A," não é primo")fimse

fimalgoritmo

Page 4: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

algoritmo "exercício"var A, i: inteiro

eh_primo: logicoinicio

repitaescreva ("Entre com um valor inteiro positivo: ")leia (A)

ate (A>0)eh_primo <- verdadeiropara i de 1+1 ate A -1 faca

129129

para i de 1+1 ate A -1 facase (A%i=0) entao

eh_primo <- falsofimse

fimparase (eh_primo e A<>1) entao

escreva ("O número ",A," é primo")senao

escreva ("O número ",A," não é primo")fimse

fimalgoritmo

Page 5: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Fim

Inicio

A, i: inteiroeh_primo : logico

"O número ",A,falsoA>0

a

"Entre com umvalor inteiro positivo: "

130

Fim

verdadeiro falso

"O número ",A," é primo"

i<=a-1

verdadeiro

A>0

i <- 1+1

eh_primo<-verdadeiro

verdadeiro

falsoA%i=0

eh_primo<-falso

i <- i+1verdadeiro

falso

"O número ",A," não é primo"

eh_primoe A<>1

Page 6: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

algoritmo "exercício - usando interrompa"var A, i: inteiro

eh_primo: logicoinicio

repitaescreva ("Entre com um valor inteiro positivo: ")leia (A)

ate (A>0)eh_primo <- verdadeiropara i de 1+1 ate A-1 faca

se (A%i=0) entao

131131

se (A%i=0) entaoeh_primo <- falsointerrompa //causa uma saída imediata do laço

fimsefimparase (eh_primo e A<>1) entao

escreva ("O número ",A," é primo")senao

escreva ("O número ",A," não é primo")fimse

fimalgoritmo

Page 7: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Fim

Inicio

A, i: inteiroeh_primo : logico

"O número ",A,falsoA>0

a

"Entre com umvalor inteiro positivo: "

132

Fim

verdadeiro falso

"O número ",A," é primo"

i<=a-1

verdadeiro

A>0

i <- 1+1

eh_primo<-verdadeiro

verdadeiro

falsoA%i=0

i <- i+1verdadeiro

falso

"O número ",A," não é primo"

eh_primoe A<>1

eh_primo<-falso

Page 8: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Slides trabalhados durante a sexta aula teórica teórica

Page 9: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de Programação

134 13

Page 10: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de ProgramaçãoUma linguagem de programação é um vocabulário e

um conjunto de regras gramaticais usadas paraescrever programas de computador. Esses programasinstruem o computador a realizar determinadas tarefasespecíficas. Cada linguagem possui um conjunto únicode palavras-chaves (palavras que ela reconhece) euma sintaxe (regras) específica para organizar asinstruções dos programas.

Os programas de computador podem ser escritos

135135

Os programas de computador podem ser escritosem várias linguagens de programação, algumasdiretamente compreensíveis pelo computador e outrasque exigem passos de tradução intermediária. Aslinguagens de programação podem ser divididas emtrês tipos, com relação à sua similaridade com alinguagem humana:

Linguagem de máquina;Linguagem simbólica;Linguagem de alto nível.

Page 11: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de ProgramaçãoLinguagem de máquina (machine languale): é

a linguagem de mais baixo nível de entendimentopelo ser humano e a única, na verdade, entendidapelo processador (UCP).

É constituída inteiramente de números (0’s e1’s), o que torna praticamente impossível entendê-la diretamente. Cada UCP tem seu conjunto único

136136

la diretamente. Cada UCP tem seu conjunto únicode instruções que definem sua linguagem demáquina, estabelecido pelo fabricante do chip.

Uma instrução típica em linguagem de máquinaseria algo como:

0100 1111 1010Essa linguagem é também classificada como

uma linguagem de primeira geração.

Page 12: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de ProgramaçãoLinguagem simbólica (assembly): é a

linguagem de nível imediatamente acima dalinguagem de máquina. Ela possui a mesmaestrutura e conjunto de instruções que alinguagem de máquina, porém permite que oprogramador utilize nomes (chamadosmnemônicos) e símbolos em lugar de números.

137137

mnemônicos) e símbolos em lugar de números.A linguagem simbólica é também única para

cada tipo de UCP, de forma que um programaescrito em linguagem simbólica para uma UCPpoderá não ser executado em outra UCP de umafamília diferente.

Nos primórdios da programação os programaseram escritos nessa linguagem.

Page 13: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de ProgramaçãoHoje a linguagem simbólica, é utilizada quando a

velocidade de execução ou o tamanho doprograma executável gerado são essenciais. Aconversão da linguagem simbólica para alinguagem de máquina se chama montagem, e éfeita por um programa chamado montador (ouassembler).

138138

assembler).Uma típica instrução em linguagem simbólica

seria:ADD A, B

Essa linguagem é também classificada comolinguagem de segunda geração, e, assim como alinguagem de máquina, é considerada umalinguagem de baixo nível.

Page 14: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de ProgramaçãoLinguagem de alto nível : São as linguagens de

programação que possuem uma estrutura epalavras-chave que são mais próximas dalinguagem humana. Tornando os programas maisfáceis de serem lidos e escritos. Esta é a suaprincipal vantagem sobre as linguagens de nívelmais baixo.

139139

mais baixo.Os programas escritos nessas linguagens são

convertidos para a linguagem de baixo nívelatravés de um programa denominado compiladorou de um interpretador.

Uma instrução típica de uma linguagem de altonível é:

if (A>10) then A:=A-7;

Page 15: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagens de Programação

140140

Page 16: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Linguagem C

141

Page 17: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Breve histórico de “C”

Criada por Dennis Ritchie;

Em 1972;

Centro de Pesquisas da Bell Laboratories;

142142

Centro de Pesquisas da Bell Laboratories;

Para utilização no S.O. UNIX.

Page 18: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Características básicas da linguagem

O C é uma linguagem de propósito geral;

Sensível ao caso (Case sensitive);

Tipos de dados primitivos: caractere, inteiro e real;

Possui estruturas de controle de fluxo;

Possui operadores aritméticos, lógicos e relacionais;

143143

Possibilita a modularização viabilizando aprogramação imperativa ou procedural;

Todo programa tem uma função principal chamadamain() ;

Todo linha de instrução em um programa é finalizadacom um “;”.

Page 19: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

ANSI

Devido à falta de padronização da linguagem C,em 1983, o Instituto Norte-Americano dePadrões (ANSI) formou um comitê, X3j11, paraestabelecer uma especificação do padrão dalinguagem C. O padrão foi completo em 1989 e

144144

linguagem C. O padrão foi completo em 1989 eratificado como ANSI X3.159-1989 “ProgrammingLanguage C” (C ANSI).

Page 20: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Estrutura de um programa em C

main()

Declarações e definições globais

145145

main()

Outras funções

ObrigatórioOpcional

Page 21: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Conceitos Básicos – Linguagem C

13

Page 22: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Constantes

Exemplos:

Decimal (10, -23768)

Hexadecimal (0x12,0x1fea28)

147147

Hexadecimal (0x12,0x1fea28)

Octal (0123)

Real (2.34, 2.34E+05, 2.14E-9)

Caractere (‘a’,’%’)

Page 23: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Palavras -reservadas

Palavras Reservadas

break case char continue dodouble else float for ifint return sizeof switch structtypedef void while long shortunsigned signed

148148

unsigned signed

Comentários/* ccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccc*/

Page 24: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Tipos Primitivos

CaractereDefinido pela palavra reservada char;Ocupa 8 bits (1 byte)Faixa de valores: -128 à 127

149149

Faixa de valores: -128 à 127Exemplo:

char letra;letra = ‘A’;

Page 25: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Tipos Primitivos

InteiroDefinido pela palavra reservada int;Ocupa 16 bits (2 bytes)Faixa de valores: -32768 à 32767

150150

Faixa de valores: -32768 à 32767Exemplo:

int num;num = -73;

Page 26: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Tipos Primitivos

Ponto flutuante e ponto flutuante de precisão dupla

Definido pela palavra reservada floatOcupa 4 bytesDefinido pela palavra reservada doubleOcupa 8 bytes

151151

Ocupa 8 bytesFaixa mínima de um valor em ponto flutuante

1E-37 a 1E+37Exemplo: float a,b,c=2.34;

double x=2.38,y=3.1415,z;

Page 27: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Operadores

A linguagem C disponibiliza, praticamente,o mesmo conjunto de operadoresaritméticos, lógicos e relacionaisapresentados anteriormente durante oestudo de algoritmos.

152152

estudo de algoritmos.

Page 28: Slides trabalhados durante a quinta aula práticamarcelo.linder/arquivos_ap/... · Slides trabalhados durante a quinta aula prática. Estruturas de Controle de Fluxo 3. Laços de

Operadores AritméticosUnários: +, -, ++, --

Exemplos: +1-5a=-b;

Operadores

Operador de atribuição

153

a++; ⇔ a=a+1;a--; ⇔ a=a-1;b=a++; ⇔ b=a;

a=a+1;b=++a; ⇔ a=a+1;

b=a;Obs.: a e b são variáveis numéricas.