Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

Zheka



Новичок

to KMA: Ещё раз спасибо, всё оказалось просто, почему же я сам не додумался

Всего сообщений: 19 | Присоединился: октябрь 2007 | Отправлено: 19 окт. 2007 23:52 | IP
Zheka



Новичок

А вот ещё вопрос. Решил ооочень простое задание на Паскале, а при компиляции программы выдаёт ошибку деление на ноль, хотя в программе по сути его быть не может в любом случае.
Показал преподавателю, он сказал, что всё верно и никакой ошибки нет. Но может мне всё-таки кто-то объяснит в чём причина невыполнения программы!?
Вот она:
program RGR6;
var A:array[1..128]of integer; i:integer; S:real;
begin
for i:=1 to 128 do
A[ i ]:=random(100);
S:=0;
for i:=1 to 128 do
begin
S:=1/sqr(2*i);
S:=S+1;
end;
writeln('S=',S:5:2);
end.


Всего сообщений: 19 | Присоединился: октябрь 2007 | Отправлено: 22 окт. 2007 3:57 | IP
KMA



Долгожитель

Может не по теме, но у меня тупой вопрос, ты сразу то не можешь написать
writeLn ('S=', 1/sqr(128*2) + 1 : 5: 3);

Зачем массив то задаешь, и цикл пробегаешь 128 раз? Когда конечное значение заранее известно?

Судя по тому, что у тебя написано, ты либо неверно решил задачу, либо неправильно переписал листинг. Открой файл то блокнотом (если из под Винды, как я догадывюсь) и перекопируй сюда.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 окт. 2007 20:37 | IP
Zheka



Новичок

Можно было бы и так сделать, но суть задачи состоит в том, чтобы решить её с помощью массива.
Какой именно файл, файл программы?


(Сообщение отредактировал Zheka 23 окт. 2007 7:05)

Всего сообщений: 19 | Присоединился: октябрь 2007 | Отправлено: 23 окт. 2007 2:17 | IP
KMA



Долгожитель

Файл с расширением pas. Скажи, а при чем здесь массивы? Ты же их вообще не используешь, ты только что и делаешь, это присваиваешь его элементам случайные значения. В чем суть? Считай, это похоже на какой-то бред. Вначале создаешь массив, потом им вообще пользуешься, затем в цикле выполняешь 128 раз операции не пойми какие, которые сокращаются до 1 записи в строчку. Спрашивается только одно, кто вам такие задачи дает? Условие можешь привести... а то как-то соображать сложновато.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 23 окт. 2007 19:54 | IP
Zheka



Новичок

Вот задание:  
                    128
Вычислить:    S   1/(2i)^2,  где S - сумма.
                     i=1


program RGR6;
var A:array[1..128]of integer; i:integer; S:real;
begin
S:=0;
for i:=1 to 128 do
begin
S:=S+1/sqr(2*i);
end;
writeln('S=',S:5:2);
end.
Да, действительно рандом здесь не к чему


(Сообщение отредактировал KMA 24 дек. 2007 18:06)

Всего сообщений: 19 | Присоединился: октябрь 2007 | Отправлено: 23 окт. 2007 22:14 | IP
KMA



Долгожитель

To Zheka, я же говорил, видишь, и код уже вполне понятный. Молодец. Только одна корректировачка. Массив объявлять не надо, он нигде не используется, в итоге твоя задача имеет решение:

Code Sample:
  
{Вычислить: 1/(2i)^2, где i=1..128}
VAR  i:integer;
       S:real;
BEGIN
 S:=0;
 for i:=1 to 128 do
  begin
   S:=S+1/sqr(2*i);
  end;
 writeln('S=',S:5:2);
END.




(Сообщение отредактировал KMA 24 окт. 2007 16:39)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 24 окт. 2007 16:37 | IP
KMA



Долгожитель


нужно упорядочить элементы массива между минимумом и максимумом  



Уважаемый гость, я еще раз говорю и не устану повторять, здесь НЕ РЕШАЮТ, здесь ПОМОГАЮТ РЕШИТЬ. Это две большие разницы. Что у Вас не получается? Говорите конкретно. Если не понятно, как начать, то вот алгоритм:

Ищем номер максимума и минимума: _nMax, _nMin;
if _nMax>_nMin
  then  
   {сортировка по возрастанию, от номера _nMin до_nMax }
 else
   {сортировка по убыванию, от _nMax до _nMin}

Если заранее определено, что какой-то из номеров стоит левее, т. е. наперед задано, что, скажем, максимум правее, чем минимум, то под else необходимо вывести сообщение, что мол так и так, ошиблись вы товарищ при вводе.

Теперь пробуй реализовать, что не получиться, там поможем.  

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 24 окт. 2007 16:46 | IP
Kitten


Новичок

Помогите решить...
Меня попросили помочь перевести выражение из префиксной формы в инфиксную.Туплю капитально.
Как сделать, чтобы выражение в скобках воспринималось как одна переменная?
Переход в обратном направлении я реализовала, используя последовательную замену внешних скобок на фигурные и удаление внутренних скобок.

Всего сообщений: 12 | Присоединился: октябрь 2007 | Отправлено: 24 окт. 2007 18:47 | IP
Zheka



Новичок

to KMA всё понятно, но программа всё равно выдаёт ошибку "division by zero" непонятно почему. Возможно это у меня тупит Паскаль? Но я пробовал и на других компах, тоже самое выдаёт

Всего сообщений: 19 | Присоединился: октябрь 2007 | Отправлено: 24 окт. 2007 23:47 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com