• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с задачами на фри Паскале

Ольга111

Ученик
Регистрация
6 Фев 2012
Сообщения
8
Реакции
0
Баллы
0
Помогите с задачами на фри Паскале

Пожалуйста,помогите решить задачу на фри паскале,завтра нужно по ней отчитываться!!!
"Из вещественного вектора a(a1,a2,..,a3n) получить вектор b(b1,b2,..bn),очередная компонента которого равна среднему арифметическому очередной тройки компонента этого вектора!!!!!!!
Пожаааалуууййстаааааааа*((((((
 
Пожалуйста,помогите решить задачу на фри паскале,завтра нужно по ней отчитываться!!!
"Из вещественного вектора a(a1,a2,..,a3n) получить вектор b(b1,b2,..bn),очередная компонента которого равна среднему арифметическому очередной тройки компонента этого вектора!!!!!!!
Пожаааалуууййстаааааааа*((((((
Если я правильно понял условие задачи (а сформулировано, надо сказать, изрядно бестолково), то так:
Код:
CONST
 N=10;
VAR
 A,B:Array[1..N] of Real;
 i:Byte;
BEGIN
 Randomize;
 For i:=1 to N do
  Begin
   A[i]:=Random*100;
   Write(A[i]:8:3);
  End;
 Writeln;
 Writeln;
 B[1]:=A[1];
 B[N]:=A[N];
 Write(B[1]:8:3);
 For i:=2 to N-1 do
  begin
   B[i]:=(A[i-1]+A[i]+A[i+1])/3;
   Write(B[i]:8:3);
  end;
 Write(B[N]:8:3);
 Readln;
END.
 
Вопросик по задачке

Program laba7;
const n=7;
var a:array[1..3*n] of real;
b:array[1..n] of real;
i,j:integer;
begin
for i:=1 to 3*n do
write ('a[',i,']=');
readln (a);
end;
begin
for i:=1 to n do

Владимир,большое спасибо за решение.Только мы решаем немного иначе,посмотрите пожалуйста,исходя из моего условия,что можно сделать даальше??я запуталась окончательно,и вообще ход правильный?
 
Владимир,большое спасибо за решение.Только мы решаем немного иначе,посмотрите пожалуйста,исходя из моего условия,что можно сделать даальше??я запуталась окончательно,и вообще ход правильный?
Ага, понятно - я несколько не так воспринял условие. Вечером поправлю: сейчас поеду с работы домой. Черт, на "3n" не обратил внимание. Потерпите пару часов.
P.S. И зачем было новую тему открывать? Мы же Вашу же задачку обсуждаем. Это нельзя к чужим темам цепляться, а свою продолжать - пожалуйста! :)
 
Ага, понятно - я несколько не так воспринял условие. Вечером поправлю: сейчас поеду с работы домой. Черт, на "3n" не обратил внимание. Потерпите пару часов.
P.S. И зачем было новую тему открывать? Мы же Вашу же задачку обсуждаем. Это нельзя к чужим темам цепляться, а свою продолжать - пожалуйста! :)

хорошо,в следующий раз так и сделаю,спасибо,подожду))
 
Вот, получите:
Код:
const
 n=7;
var
 a:array[1..3*n] of real;
 b:array[1..n] of real;
 i:integer;
begin
 for i:=1 to 3*n do
  begin
   write ('a[',i:2,']= ');
   readln (a[i]);
  end;
 writeln;
 for i:=1 to 3*n do
  write(a[i]:8:3);
 writeln;
 writeln;
 for i:=1 to n do
  b[i]:=(a[1+(i-1)*3]+a[2+(i-1)*3]+a[3+(i-1)*3])/3;
 for i:=1 to n do
  write(b[i]:8:3);
 readln
end.
 
Спасибо вам большое Владимир,всё теперь разобралась=)Всё работает=))Я думаю если индексы оставить в виде :a[j+1]+a[j+2]......т.е. без i-1....получится тоже самое,мы же берём одну строчку 1,2,3,вторую потом к j прибавляем 3,что бы вторая вышла 4,5,6.,и т. д.?Вообщем j:=j+3=)))
прям спасли!!=))
 
Вот, получите:
Код:
const
 n=7;
var
 a:array[1..3*n] of real;
 b:array[1..n] of real;
 i:integer;
begin
 for i:=1 to 3*n do
  begin
   write ('a[',i:2,']= ');
   readln (a[i]);
  end;
 writeln;
 for i:=1 to 3*n do
  write(a[i]:8:3);
 writeln;
 writeln;
 for i:=1 to n do
  b[i]:=(a[1+(i-1)*3]+a[2+(i-1)*3]+a[3+(i-1)*3])/3;
 for i:=1 to n do
  write(b[i]:8:3);
 readln
end.

Владимир, решила попробовать похожую задачу здесь нашла где то,вот что получилось,но у меня не выводит ответ ,выходят нули. Условие:дан целочисленный вектор a(а1,а2,...,an) построить вектор b(b1,b2,...,bn)приняв в качестве первых его компонент все отрицательные компоненты вектора a(с сохранением порядка их следования)в качестве остальных положительные компоненты вектора a,также с сохранением порядка их следования.
program lab_7;
uses crt;
const n=5;
var a:array[1..n] of integer;
b:array[1..n] of integer;
i,j:integer;
begin
for i:=1 to n do
begin
write ('a[',i,']=');
readln (a);
end;
clrscr;
j:=1;
for i:=1 to n do
begin
if a<0 then begin
a:=b[j];
j:=j+1;
end;
end;
for i:=1 to n do
begin
if a>=0 then begin
a:=b[j];
j:=j+1;
end;

end;
for i:=1 to n do
writeln (b);
readln;
end.
 
не выводит ответ ,выходят нули.
... что вполне естественно.
Потому что аж в двух местах Вы пишете
- и что мы имеем? Вы сперва вводите значения элементов массива А, а затем им же присваиваете значения элементов массива В, в котором по умолчанию стоят нули! Вот нули и получаете. Короче говоря, в двух местах надо вместо
a:=b[j];
записать
b[j]:=a;
На всякий случай: в операторе присваивания ":=" слева стоит то, чему присваивается, а справа то, что присваивается. Например
q:=5; - правильно, а
5:=q; - неправильно.
 
Здравствуйте,помогите пож.Даны 100 целых чисел ,распечатать их в обратном порядке по 6 чисел в строке))
 
В обратном порядке, так понимаю, это с последнего до первого, так?
Пусть числа хранятся в массиве B, тогда вот один из вариантов вывода чисел:
Код:
for i:=100 downto 1 do
begin
write(b[i]:4);
if i mod 6=0 then writeln;
end;
 
Назад
Сверху