Понизить репутацию пользователю за это сообщение?

Монеты России и СССР

Самара нумизмат - форум

По техническим причинам форум Самара-Нумизматика переехал на новый домен:
https://lave.pro
Ждём Вас по новому адресу. Просим прощения за возникшие неудобства.


Часовой пояс: UTC + 3 часа




 [ Сообщений: 12 ] 
Автор Сообщение
Не в сети
Есть кто "шарит" в Паскале? Сообщение Добавлено: 19-12-2013 19:03:36 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
Нужна небольшая помощь в решении пары задачек

_________________
С уважением, Андрей.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 20-12-2013 10:26:21 
Аватара пользователя

Зарегистрирован: 31-03-2009 17:42:38
Сообщения: 4238
Город: Москва
Пол: Мужской
Благодарил (а): 112,00 Lv (4 раз.)
Поблагодарили: 65,00 Lv (11 раз.)
Имя: Оюшминальд
Тема: медь РИ
Номер карты Сбербанка 6390**********1462
Pascal как раз и нужен для того чтобы научиться понимать, что пишешь и для чего это нужно. Скроишь - сам у себя украдёшь.

В чём конкретно затруднения-то?

_________________
Все виды неприязни ко мне прошу выражать исключительно в суицидальной форме.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 20-12-2013 21:25:34 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
BaNG писал(а):
Pascal как раз и нужен для того чтобы научиться понимать, что пишешь и для чего это нужно. Скроишь - сам у себя украдёшь.

В чём конкретно затруднения-то?

Есть задание найти сумму ряда. Программу написал, но результат выдает неверный. Следовательно, неправильно написал. Хотелось бы понять в чем ошибка

_________________
С уважением, Андрей.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 20-12-2013 23:21:33 

Зарегистрирован: 22-02-2012 06:18:35
Сообщения: 1212
Город: Московская область
Пол: Мужской
Благодарил (а): 1,00 Lv (1 раз.)
Поблагодарили: 12,00 Lv (3 раз.)
Имя: Сергей
Выкладывай листинг программы.
Глянем, вспомним былое...
Ох и давно же это было

_________________
В продаже:
Бразилия, наборы реалов к Олимпиаде 2016 и к ЧМ по футболу 2014;
Австрия, 25 евро, ниобий 2011 - 2015 годов;
Альбомы для монет


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 21-12-2013 09:53:18 
Аватара пользователя

Зарегистрирован: 31-03-2009 17:42:38
Сообщения: 4238
Город: Москва
Пол: Мужской
Благодарил (а): 112,00 Lv (4 раз.)
Поблагодарили: 65,00 Lv (11 раз.)
Имя: Оюшминальд
Тема: медь РИ
Номер карты Сбербанка 6390**********1462
Какого ряда-то? А то по ошибочному листингу восстанавливать задавние - :lol:

_________________
Все виды неприязни ко мне прошу выражать исключительно в суицидальной форме.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 21-12-2013 13:15:50 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
Задание: найти сумму ряда.
Ряд: cos x +...+(cos(2n-1)*x)/(2n-1)^2
Диапазон изменения аргумента: pi/10<=x<=9pi/10
n=40
Функция Y=(pi^2/8)-(pi/4)*|x|

Код:
Program summa;
Var x, S, h, K, Y, a, b: real;
N1, N2, n: integer;
begin
  a:=Pi/10;
  b:=9*Pi/10;
  N1:=1;
  N2:=40;
  h:=((b-a)/10);
  x:=a;
  S:=1;
  n:=1;
  K:=1;
  Y:=3;
    write('X':2);
    write('S':4);
    writeln('Y':5);
    While x<= b do
    begin
    S:=0;
    K:=1;
    For n:=N1 to N2 do
    begin
    K:=(cos(2*n-1)*x)/((2*n-1)*(2*n-1));
    S:=S+K;
    end;
    Y:=((Pi*Pi)/8)-(Pi/4)*(ABS(x));
    write(x:4:2);
    write(S:5:2);
    writeln(Y:5:2);
     x:=x+h;
    end;
    end.

В реультате получается три столбца со значениями x, S и y. Значения в столбцах S и y должны быть одинаковыми. У меня они получаются разными.

_________________
С уважением, Андрей.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 21-12-2013 21:23:05 

Зарегистрирован: 22-02-2012 06:18:35
Сообщения: 1212
Город: Московская область
Пол: Мужской
Благодарил (а): 1,00 Lv (1 раз.)
Поблагодарили: 12,00 Lv (3 раз.)
Имя: Сергей
Проверяйте скобки!
Код:
K:=(cos((2*n-1)*x))/SQR(2*n-1);

у вас ошибка в том что сначала считается COS(2*n-1), а потом умножается на x

Вот результат:
Код:
X   S    Y
0.31 0.99 0.99
0.57 0.79 0.79
0.82 0.59 0.59
1.07 0.39 0.39
1.32 0.20 0.20
1.57 0.00 0.00
1.82-0.20-0.20
2.07-0.39-0.39
2.32-0.59-0.59
2.58-0.79-0.79
2.83-0.99-0.99


и еще три присваивания лишних, но это не ошибки, а так недочеты. (даже четыре раза)

_________________
В продаже:
Бразилия, наборы реалов к Олимпиаде 2016 и к ЧМ по футболу 2014;
Австрия, 25 евро, ниобий 2011 - 2015 годов;
Альбомы для монет


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 21-12-2013 23:28:54 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
SergeiKl писал(а):
Проверяйте скобки!
Код:
K:=(cos((2*n-1)*x))/SQR(2*n-1);

у вас ошибка в том что сначала считается COS(2*n-1), а потом умножается на x

Вот результат:
Код:
X   S    Y
0.31 0.99 0.99
0.57 0.79 0.79
0.82 0.59 0.59
1.07 0.39 0.39
1.32 0.20 0.20
1.57 0.00 0.00
1.82-0.20-0.20
2.07-0.39-0.39
2.32-0.59-0.59
2.58-0.79-0.79
2.83-0.99-0.99


и еще три присваивания лишних, но это не ошибки, а так недочеты. (даже четыре раза)

Огромное Вам спасибо, Сергей :D . Просмотрел я :(

_________________
С уважением, Андрей.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 29-12-2013 01:00:10 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
Возникла трудность в решении еще одной задачи.
Задание: В каждом столбце матрицы D[N,M] нулевые элементы переставить в начало столбца.
Вот что получилось:
Код:
Program matr;
const N=5;
const M=5;
var D:array [1..N,1..M] of real;
i,j,k:integer;l:real;

begin

for i:=1 to n do begin
for j:=1 to m do begin
   D[i,j]:=random(5);

   if d[i,j]=0 then
    for k:=i-1 downto 1 do begin
      l:=d[k+1,j];
      d[k,j]:=d[k+1,j];
      d[k,j]:=l;
    end;
end;
end;

for i:=1 to n do begin
for j:=1 to m do begin
   write(D[i,j]:5:2);
end; writeln;
end;
  readln;
end.

работает неправильно. Как исправить?

_________________
С уважением, Андрей.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 29-12-2013 06:02:47 
Аватара пользователя

Зарегистрирован: 20-07-2012 07:20:57
Сообщения: 2273
Город: Березники, Пермский Край
Пол: Мужской
Благодарил (а): 30,00 Lv (3 раз.)
Поблагодарили: 15,00 Lv (6 раз.)
Имя: Вадим
на первый взгляд - условие не закрыто

Код:
Program matr;
const N=5;
const M=5;
var D:array [1..N,1..M] of real;
i,j,k:integer;l:real;

begin

for i:=1 to n do begin
for j:=1 to m do begin
   D[i,j]:=random(5);

   if d[i,j]=0 then
    for k:=i-1 downto 1 do begin
      l:=d[k+1,j];
      d[k,j]:=d[k+1,j];
      d[k,j]:=l;
    end;

   End;

end;
end;

for i:=1 to n do begin
for j:=1 to m do begin
   write(D[i,j]:5:2);
end; writeln;
end;
  readln;
end.


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 10-01-2014 12:07:02 

Зарегистрирован: 22-02-2012 06:18:35
Сообщения: 1212
Город: Московская область
Пол: Мужской
Благодарил (а): 1,00 Lv (1 раз.)
Поблагодарили: 12,00 Lv (3 раз.)
Имя: Сергей
elka11 писал(а):
работает неправильно. Как исправить?


Если еще актуально.
Сначала буду ругать.
Ошибок море.
1. Нельзя в одном цикле и создавать массив и обрабатывать его. Сначала циклом создаем его, затем уже обрабатываем но в другом цикле, хотя в вашем случае работает верно.
2. i - это индекс строки
j - индекс столбца.
Верно?
Если нужно передвинуть значение в строке, то меняем только j.
У Вас же наоборот.
3. Это уже для красоты, ну написали массив большой буквой, так и работайте с ним дальше.

Вот что получилось:
Код:
Program matr;
const N=5;
const M=5;
var D:array [1..N,1..M] of real;
i,j,k:integer;l:real;

begin

for i:=1 to n do begin
for j:=1 to m do begin
   D[i,j]:=random(5);

end;
end;

for i:=1 to n do begin
for j:=1 to m do begin
   write(D[i,j]:5:2);
end; writeln;
end;

writeln;

for i:=1 to n do begin
for j:=1 to m do begin
  if D[i,j] = 0 Then
  Begin
    For k:=j-1 downto 1 do
    Begin
      If D[i,k] <> 0 Then
      Begin
      l:= D[i,k];
      D[i,k] := D[i,k+1];
      D[i,k+1] := l;
      End;
    End;
  End;
end;
end;

writeln;
for i:=1 to n do begin
for j:=1 to m do begin
   write(D[i,j]:5:2);
end; writeln;
end;
end.


Результат:
Код:
2.00 4.00 2.00 1.00 2.00
0.00 0.00 1.00 3.00 3.00
1.00 3.00 1.00 3.00 3.00
0.00 1.00 0.00 3.00 0.00
4.00 2.00 0.00 1.00 1.00


2.00 4.00 2.00 1.00 2.00
0.00 0.00 1.00 3.00 3.00
1.00 3.00 1.00 3.00 3.00
0.00 0.00 0.00 1.00 3.00
0.00 4.00 2.00 1.00 1.00


Одно условие в цикле сравнение лишнее, но чуток ускорит работу программы, т.к. не обязательно доходить до первого элемента в строке, и соотвественно не надо делать три лишних присваивания.

В следующий раз если что надо помочь, пишите и в тему и в ЛС.

Удачи!
Сергей

_________________
В продаже:
Бразилия, наборы реалов к Олимпиаде 2016 и к ЧМ по футболу 2014;
Австрия, 25 евро, ниобий 2011 - 2015 годов;
Альбомы для монет


Вернуться к началу
   
 
Не в сети
Re: Есть кто "шарит" в Паскале? Сообщение Добавлено: 20-01-2014 19:57:13 
Аватара пользователя

Зарегистрирован: 22-02-2012 22:44:46
Сообщения: 1947
Город: Владимир
Пол: Мужской
Благодарил (а): 0 раз.
Поблагодарили: 26,00 Lv (8 раз.)
Имя: Андрей
Сергей, спасибо большое, все понял, то что Вы объяснили. И все же, нужно было отрицательные элементы поставить в начало каждого столбца, а не строки, так что я верно менял i. Но я понял как делать+полезно знать и то, как переставлять в начало строки, спасибо!

_________________
С уважением, Андрей.


Вернуться к началу
   
 

 [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: