• Nenhum resultado encontrado

2. Construa um algoritmo para determinar os números primos menores ou iguais a 1000.

N/A
N/A
Protected

Academic year: 2021

Share "2. Construa um algoritmo para determinar os números primos menores ou iguais a 1000."

Copied!
12
0
0

Texto

(1)

CENTRO TECNOLÓGICO

EPS7001 – INFORMÁTICA PARA ENGENHEIROS DE PRODUÇÃO

LISTA DE EXERCÍCIOS – ALGORITMOS

1.

Construa um algoritmo para determinar o MMC e o MDC de dois números, N1 e N2, dados.

2.

Construa um algoritmo para determinar os números primos menores ou iguais a 1000.

3.

Construa um algoritmo para calcular as raizes de uma função quadrática

c

x

b

x

a

x

f

(

)

=

2

+

+

.

4. Construa um algoritmo para determinar a média aritmética e o desvio padrão dos elementos

de um vetor

x

=

(

x

1

,

x

2

,...,

x

n

)

.

a.

=

=

n i i

x

n

1

1

µ

b.

=

=

n i i

x

n

1 2

)

(

1

µ

σ

5.

Construa um algoritmo para calcular a raiz quadrada de um número N dado, sem usar a

função SQRT.

6.

Construa um algoritmo para calcular a inclinação da reta tangente de uma função

x

x

x

f

(

)

=

ln(

2

+

1

)

+

em um ponto

x

0

informado pelo usuário.

7.

Construa um algoritmo para calcular a área aproximada sob a curva definida pela função

x

x

x

f

(

)

=

ln(

2

+

1

)

+

, no intervalo

[ b

a

,

]

informado pelo usuário.

8.

Construa um algoritmo para deterninar o ponto de mínimo da função

x

e

x

x

x

f

(

)

=

2

2

+

.

9.

Construa um algoritmo para determinar:

= ∞ →

=

n i i n

y

1

2

1

lim

10.

Construa um algoritmo para determinar um valor aproximado de

π

.

(2)

GABARITO

QUESTÃO 01

Algoritmo MMC_MDC; P1. Ler N1 e N2; P2. Calcular MMC MMC

1; i

2; Enquanto (i

N1) ou (i

N2) faça:

Enquanto N1 ou N2 são divisíveis por i faça Se N1 é divisível por i então N1

N1 div i; Se N2 é divisível por i então N2

N2 div i; MMC

MMC * i; i

i + 1; P3. Calcular MDC MDC

(N1 * N2) div MMC; P4. Apresentar MMC e MDC; P5. Fim program Exerc01; {$APPTYPE CONSOLE}

uses SysUtils, Dialogs, Math;

Function MMC (N1,N2 : Integer) : Integer; Var i : Integer; begin Result := 1; i := 2; While (i <= N1) or (i <= N2) do begin

While ((N1 mod i) = 0) OR ((N2 mod i) = 0) do begin

If ((N1 mod i) = 0) then N1 := N1 div i; If ((N2 mod i) = 0) then N2 := N2 div i; Result := Result * i;

end;

i := i + 1; end;

end;

Function MDC (N1,N2 : Integer) : Integer; begin Result := (N1 * N2) div MMC(N1,N2); end; Var N1,N2 : Integer; begin

Write('Entre com dois numeros inteiros: '); Readln(N1,N2);

Writeln('Minimo Multiplo Comum = ',MMC(N1,N2)); Writeln('Maximo Divisor Comum = ',MDC(N1,N2));

MessageDlg('Fim do Programa',mtInformation,[mbOK],0); end.

(3)

Algoritmo Numeros_Primos; P1. Para N

1 até 1000 faça:

EhPrimo

True;

Max

Inteiro (Raiz (N)); k

2;

Enquanto (EhPrimo = True) e (k

Max) faça: Se N é divisível por k então EhPrimo

False; k

k + 1;

Se (EhPrimo = True) então apresenta N; P2. Fim.

program Exerc02; {$APPTYPE CONSOLE} uses SysUtils,Dialogs;

Function EhPrimo (N : Integer) : Boolean; Var i, M : Integer; begin Result := True; M := Trunc(Sqrt(N)); i := 2;

While (i <= M) and (Result = True) do begin Result := (N mod i) <> 0; i := i + 1; end; end; Var i : Integer; begin For i := 1 to 1000 do

If EhPrimo(i) then Writeln(i);

MessageDlg('Fim do Programa', mtInformation,[mbOK],0); end.

(4)

QUESTÃO 03

Algoritmo Baskara; P1. Ler A, B e C; P2. Faça D

B * B – 4 * A * C; P3. Se D

0 então: D

Raiz(D); X1

(-B+D)/(2*A); X2

(-B-D)/(2*A);

Apresenta as raízes reais X1 e X2; P4. Se D < 0 então:

D

Raiz (Absoluto (D)); REAL

-B/(2*A);

IMAG

D/(2*A);

Apresenta Raizes complexas REAL

±

IMAG P5. Fim.

program Exerc03; {$APPTYPE CONSOLE} uses SysUtils, Dialogs;

Procedure Baskara (A,B,C : Real); Var D : Real; begin D := SQR(B) - 4 * A * C; If D >= 0 then begin D := SQRT (D); Writeln('Raizes Reais'); Writeln(' X1 = ',(-B+D)/(2*A)); Writeln(' X2 = ',(-B-D)/(2*A)); end else begin D := SQRT (ABS(D));

Writeln('Raizes Complexas / Imaginaias'); Writeln(' REAL = ',-B/(2*A));

Writeln(' IMAG = ',D/(2*A)); end;

end; Var

A,B,C : Real; begin

Write('Entre com os coeficientes (A,B,C) = '); Readln (A,B,C);

Baskara (A,B,C);

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

(5)

Algoritmo Media_DesvioPadrao;

P1. Ler o tamanho do vetor, N; Ler elementos do vetor, V[i], i

1,...,N; P2. Calcular a média

Soma

0;

Para i

1 até N faça Soma

Soma + V[i]; Media

Soma / N; P3. Calcular desvio padrão

Soma

0;

Para i

1 até N faça

Soma

Soma + (V[i] – Media) * (V[i] – Media); DP

Raiz (Soma / N); P4. Apresentar Media e DP; P5. Fim. program Exerc04; {$APPTYPE CONSOLE} uses SysUtils,Dialogs; Type

TVetor = Array of Real;

Function Media (UmVetor : TVetor) : Real; Var

N,i : Integer; begin

Result := 0;

N := Length(UmVetor);

For i := 0 to N-1 do Result := Result + UmVetor[i]; Result := Result / N;

end;

Function DesvioPadrao (UmVEtor : TVetor) : Real; Var Med : Real; N,i : Integer; begin Result := 0; Med := Media(UmVetor); N := Length(UmVetor);

For i := 0 to N-1 do Result := Result + SQR(UmVetor[i] - Med); Result := SQRT(Result / N); end; Var Vetor : TVetor; N,i : Integer; begin

Write('Entre com o tamanho do vetor = '); Readln(N); SetLength(Vetor,N); For i := 0 to N-1 do begin Write ('Vetor[',i:2,'] = '); Readln(Vetor[i]); end; Writeln; Writeln('Media = ',Media(Vetor));

(6)

Vetor := nil;

MessageDlg('Fim do Processamento',mtInformation,[mbOK],0); end.

(7)

Algoritmo Raiz_Quadrada; P1. Ler N; P2. Faça X

1 e Y

N; P3. Enquanto X

Y faça: X

(X + Y) / 2; Y

N / X; P4. Apresente X; P5. Fim. program Exerc05; {$APPTYPE CONSOLE} uses SysUtils, Dialogs;

Function Raiz(N : Real) : Real; Var

X,Y : Real; begin

X := 1; Y := N;

While Abs(X-Y)/X > 1E-08 do begin X := (X + Y) / 2; Y := N / X; end; Result := X; end; Var N : Real; begin

Write('Entre com um numero = '); Readln(N);

Writeln('Raiz = ',Raiz(N));

MessageDlg('Fim do Processamento',mtInformation,[mbOK],0); end.

(8)

QUESTÃO 06

Funcao F(X : Real) : Real; Inicio F

LN (X * X + 1) + Raiz (X); Retorne F; Fim. Algoritmo Inclinacao_Funcao; P1. Ler X; P2. Delta

0.000001;

P3. INC

(F(X+Delta) – F(X)) / Delta; P4. Apresentar INC;

P5. Fim.

program Exerc06; {$APPTYPE CONSOLE} uses SysUtils,Dialogs;

Function F(X : Real) : Real; begin

Result := ln( X * X + 1 ) + SQRT(X); end;

Function Inclinacao (X : Real) : Real; Const

Delta = 1E-06; begin

Result := ( F(X+Delta) - F(X) ) / Delta; end;

Var

X : Real; begin

Write ('Entre com o valor de X = '); Readln (X);

Writeln (Inclinacao(X));

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

(9)

Funcao F(X : Real) : Real; Inicio F

LN (X * X + 1) + Raiz (X); Retorne F; Fim. Algoritmo Area_Funcao; P1. Ler intervalo [A,B];

P2. Faça: N

1000; Dx

(B-A)/N; Area

0; P3. F1

F(A);

P4. Para i

1 até N faça: F2

F(A + i * Dx); Area

Area + (F1 + F2) * Dx / 2; F1

F2; P5. Apresentar Area; P6. Fim. program Exerc07; {$APPTYPE CONSOLE} uses SysUtils,Dialogs;

Function F(X : Real) : Real; begin

Result := ln( X * X + 1 ) + SQRT(X); end;

Function Area (A,B : Real) : Real; Const N = 1000; Var Dx : Real; i : Integer; F1,F2 : Real; begin Result := 0; Dx := (B - A) / N; F1 := F(A); For i := 1 to N do begin F2 := F(A + i * Dx); Result := Result + (F1 + F2) * Dx / 2; F1 := F2; end; end; Var A,B : Real; begin

Write ('Entre com o intervalo [A,B] = '); Readln(A,B);

Writeln ('Area sob a curva = ',Area(A,B));

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

(10)

QUESTÃO 08

Funcao F(X : Real) : Real; Inicio

F

X * X – 2 * X + Exp (X); Retorne F;

Fim.

Funcao Inc(X : Real) : Real; Inicio

Delta

0.000001;

Inc

( F(X+Delta) – F(X) ) / Delta; Retorne Inc;

Fim.

Algoritmo Minimo_Funcao;

P1. Ler intervalo de busca [A,B]; faça Delta

0.000001; P2. Enquanto ((B-A) > Delta) faça:

C

(A+B)/2;

Se Inc(C)

0 então B

C; senão A

C; P3. C

(A+B)/2; P4. Apresente C e F(C); P5. Fim. program Exerc08; {$APPTYPE CONSOLE} uses SysUtils,Dialogs; Const Delta = 0.000001;

Function F(X : Real) : Real; begin

Result := SQR(X) - 2 * X + exp(X); end;

Function Inclinacao (X : Real) : Real; begin

Result := ( F(X+Delta) - F(X) ) / Delta; end;

Var

A,B,C : Real; begin

Write('Entre com o intervalo de busca [A,B] = '); Readln(A,B);

While (B-A) > Delta do begin C := (A + B) / 2; If Inclinacao(C) >= 0 then B := C else A := C; end; C := (A + B) / 2;

Writeln ('Ponto de Minimo = ',C); Writeln ('Valor da Funcao = ',F(C));

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

(11)

Algoritmo Limite_Soma;

P1. Faça: Soma

0; Parcela

1; N

0; P2. Enquanto Parcela > 1E-16 faça:

Parcela

Parcela * 0.5; Soma

Soma + Parcela; N

N + 1;

P3. Apresentar N e Soma; P4. Fim.

program Exerc09; {$APPTYPE CONSOLE} uses SysUtils, Dialogs; Var N : Integer; Soma,Dif : Real; begin Soma := 0; Dif := 1; N := 0; Repeat N := N + 1; Dif := Dif * 0.5; Soma := Soma + Dif; Until Dif < 1E-16;

Writeln ('Numero de parcelas = ',N); Writeln ('Limite calculado = ',Soma);

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

(12)

QUESTÃO 10

Funcao YCirc(R,XCirc : Real) : Real; Inicio

YCirc

Raiz (R * R – XCirc * XCirc); Retorne YCirc;

Fim.

Algoritmo Calcula_Pi;

P1. Faça: R

100000000; C

0; P2. Y1

YCirc(R,0);

P2. Para X

1 até R faça: Y2

YCirc (R,X);

C

C + Raiz ((Y2-Y1)* (Y2-Y1) + 1) ; Y1

Y2; P3. Pi

2 * C / R; P4. Apresenta Pi; P5. Fim. program Exerc10; {$APPTYPE CONSOLE} uses SysUtils,Dialogs;

Function YCirc (R,X : Extended) : Extended; begin Result := SQRT(SQR(R)-SQR(X)); end; Var i : Integer; R,C : Extended; Y1,Y2 : Extended; begin Writeln('Calculando... Aguarde.'); C := 0; R := 100000000; Y1 := YCirc(R,0); For i := 1 to 100000000 do begin Y2 := YCirc(R,i); C := C + SQRT(SQR(Y2-Y1)+1); Y1 := Y2; end; Writeln('Pi Calculado = ',2 * C / R); Writeln('Pi Computador = ',Pi);

MessageDlg('Fim de Processamento',mtInformation,[mbOK],0); end.

Referências

Documentos relacionados

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

A nutrição enteral (NE), segundo o Ministério da Saúde do Brasil, designa todo e qualquer “alimento para fins especiais, com ingestão controlada de nutrientes, na forma isolada

O CTIC não requisita dados dos usuários por e-mail ou telefone, portanto, o usuário não deverá fornecer qualquer informação referente a sua conta institucional se acionado por

Nos tempos atuais, ao nos referirmos à profissão docente, ao ser professor, o que pensamos Uma profissão indesejada por muitos, social e economicamente desvalorizada Podemos dizer que

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o &#34;Fiel do sendo o

Os suplementos mais utilizados, foram BCAA isoladamente; associado com maltodextrina; Whey Protein isolado e associado com BCAA e com maltodextrina (Nutrição) e Whey

Essa situação ainda é consequência da maior quantidade de usuários de VoIP, o que leva a crer que em momentos de tráfego mé- dio (no caso com 50 usuários) a operadora que investe

&#34;EFEITOS DA MODERNIZAÇÃO NA ESTRUTURA FAMILIAR DO PEQUENO PRODUTOR NA MR. DO SERTÃO DO