Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
DIGÃO DIAS

[Resolvido] Trabalho lascado em Pascal

Posts recomendados

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara aqui roda tranquilo e o cálculo eu fiz pela fórmula que você passou. Me mostra especificamente em qual parte do código está a dúvida.

[ ]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...