Ir ao conteúdo
  • Cadastre-se

Trabalho lascado em Pascal


DIGÃO DIAS

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

Link para o comentário
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

Link para o comentário
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.

Link para o comentário
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

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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