Ir ao conteúdo

Trabalho lascado em Pascal


DIGÃO DIAS

Posts recomendados

Postado

Faça um programa que contenha

*uma sub-rotina que receba como parametro por valor um ponteiro para um vetor de dimensão 20 de numeros inteiros. Este vetor deverá receber dentro da sub-rotina 20 numeros aleatorios inteiros quaisquer entre 10 e 99 ultilizando a função Random.

*uma sub-rotina que ordene o vetor em ordem decrecente (lembrando que o vetor é uma variavel dinamica).

*Uma sub-rotina recursiva que faça a pesquisa sequencial no vetor.

*Uma sub-rotina que calcule e mostre o valor de S onde:

- i=1, n=20 e S=(V-V[n])² + (V[i+1]-V[n-1])² + ... + (V[i+9] - V[n-9])²

Obs: S devera ser obrigatoriamente uma variavel local do tipo ponteiro para um inteiro

galera, por favor, da um jeito nisso..to quase enlouquecendo por conta desse trabalho.

um abraço

Postado

program ordena;
uses crt;
const tam=20;
type t_vet=array [1..tam] of integer;
var vetor:t_vet;
j:integer;

procedure bsort(var vetor:t_vet;max:integer);
var e,i,a:integer;


begin
for e:=1 to max -1 do
for i:=1 to max - e do
if vetor<vetor [i+1] then
begin
a:=vetor;
vetor:=vetor[i+1];
vetor[i+1]:=a;
end;
end;

begin
clrscr;
randomize;
for j:=1 to tam do
begin
vetor[j]:=random (99);
writeln (vetor[j]);
end;
bsort (vetor,tam);
writeln ('tecle <enter> para ver o vetor ordenado');
readln;writeln;writeln;

for j:=1 to tam do
writeln (vetor[j]);

readln;
end.

OBS: não ta rodando nada

Postado

Amigo, programação tem que exercitar e entender o que está acontecendo senão, não adianta nada.

Mas, está ai o programa:

Program Trabalho_Lascado;

Type vetor = array[1..20] of integer;
Ponteiro = ^real;
var i: integer;
v, vDesc:vetor;
S: real;

Procedure Recebe;
var x,j:integer;
begin
for j:=1 to 20 do
begin
repeat
randomize;
x:=random(100);
until x > 10;
v[j]:=x;
writeln(v[j]);
end;
end;

Procedure Decrescente;
var a,b,aux: integer;
begin
b:=1;
for a:=1 to 20 do
begin
for b:=1 to 20 do
begin
if (v[a] <> v[b]) and (v[a] > v[b]) then
begin
aux:= v[a];
v[a]:=v[b];
v[b]:=aux;
end;
end;
end;
for a:=1 to 20 do
writeln(v[a]);
end;

Procedure Recursiva;
var y:integer;
begin
for y:=20 downto 1 do
begin
writeln('Posição ',y,' ',v[y]);
end;
end;

Procedure RetornaS;
var i:integer;
begin
for i:=1 to 20 do
begin
S:= S + ((v[i]-v[21-i]) * (v[i]-v[21-i]));
end;
writeln('Valor de S: ',S);
end;


Begin
writeln('Formação do vetor');
Recebe;
readln;
writeln('Recursiva');
Recursiva;
readln;
writeln ('Decrescente');
Decrescente;
readln;
RetornaS;
readln;
end.

Postado

valeu cara, eu sei q tem q exercitar mas o tempo mal deixa ver minha esposa.

mas vou da uma estudada nesse programa pra entende-lo, e assim, quem sabe eu esteja melhor mais pra frente.

valeu!!um abraço!!

Postado

Cara tava dando uma olhada no que você mandou e alterei algumas coisas.

e percebi q o barato do calculo num tá certo, tem como dar uma força e também a parte de ordena em ordem decrescente.

program vetor_rec_ptr;
uses crt;

type tam_vet = array[1..20] of byte;

procedure Recebe(var vetor:tam_vet);
var i:byte;
begin
randomize;
for i:=1 to 20 do
begin

vetor[i]:=random(90)+10;
writeln(vetor[i]);

end;
end;


Procedure Decrescente;
(*var i:integer;
vetor:tam_vet;
begin
for i:=20 downto 1 do
begin
writeln(vetor[i]);
end;
end;*)
var a,b,aux: integer;
vetor:tam_vet;
begin
b:=1;
for a:=1 to 20 do
begin
for b:=1 to 20 do
begin
if (vetor[a] <> vetor[b]) and (vetor[a] > vetor[b]) then
begin
aux:= vetor[a];
vetor[a]:=vetor[b];
vetor[b]:=aux;
end;
end;
end;
for a:=1 to 20 do
writeln(vetor[a]);
end;
(*
Procedure Recursiva;
var y:integer;
begin
for y:=20 downto 1 do
begin
writeln('Posição ',y,' ',v[y]);
end;
end;

Procedure RetornaS;
var i:integer;
begin
for i:=1 to 20 do
begin
S:= S + ((v[i]-v[21-i]) * (v[i]-v[21-i]));
end;
writeln('Valor de S: ',S);
end;
*)
var
vetor :tam_vet;
i:byte;
Begin
clrscr;
writeln('Formação do vetor');
Recebe(vetor);
readln;
writeln('Decrecente');
Decrescente;

(*writeln('Recursiva');
Recursiva;
readln;

RetornaS;*)
readln;
end.

OBS: cara eu to mandando o que eu tenho até agora.....e ele esta cheio de (*, *), porque eu estava fazendo varios testes então não queria perde as instruções que ja estava

Postado

de boas, agora funcionou...mexi em algumas coisas, como passagem de parametro ai deu uma melhorada...a unica coisa que ficou faltando mesmo é a recursiva pois a que esta ai não é recursiva, o codigo ta fazendo tudo certinho, mas esta usando FOR e recurção não usa loop, tentei fazer umas recurção mas não deu certo.

e fico faltando o esquema de ponteiro que também não deu pra fazer.

até tentaria continuar fazendo mas eu vou entregar o trabalho amanha mesmo faltando esses 2 itens, e também tenho prova, ou seja, preciso estudar.

galera valeu pela ajuda...forte abraço e até mais.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!