Новые сообщения · Правила  
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Решения задач на Паскале!Срочно нужно!
Решения задач на Паскале!Срочно нужно!
[quote=margo]http://primat.org/forum/10-1204-1 ну и?решения то нету -__-[/quote]

зато алгоритм есть))


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
581 | Автор: Berestovskiy | 2012-06-10, 23:11   |  Репутация: [ + 211 ]
Помогите плиз, я написал прогу но почему то выдает одно и тоже значение помогите понять где ошибка вот условие задачи

type
reals = file of real;
var f: reals;
Опишите рекурсивную функцию sum без параметров для
нахождения суммы элементов файла f.

а вот что я написал
type
reals = text;
var f:reals;
y,n,s:real;
function sum( f:reals):integer;
var
sum,num:integer;
begin
sum:=0;
if not eof(f) then begin
readln(f,num);
if num<>0 then begin
sum:=sum+num;
end;
end;
end;
begin
assign (f,'sum.txt');
reset(f);
n:=sum(f);
writeln('сумма элементов файла n=',n:4:3);
readln;
close(f);
end.

а вот что выводит сумма элементов файла n=1954051118.000
582 | Автор: M@RECS | 2012-06-11, 10:40 | Изменено: M@RECS - Пн, 2012-06-11, 10:41   |  Репутация: [ + 0 ]
[quote=M@RECS]if num<>0 then begin sum:=sum+num; end;[/quote]

бегин-енд тут не нужен

а в чём ошибка - не пойму..
не люблю я читать чужие коды, не понятно ничего)
попробуй заново написать..должно помочь)


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
583 | Автор: Berestovskiy | 2012-06-11, 12:00   |  Репутация: [ + 211 ]
Всем доброго времени суток. Нужна помощь в решении задачи. Сортировочный автомат измеряет и направляет деталь в одну из n групп, на которые разбит допуск Т на выдерживаемый у детали номинальный диаметр d. Задайте количество и размеры деталей в партии, а затем рассортируйте их по группам.
Помогите пожалуйста!!!
584 | Автор: GusMaN18 | 2012-06-12, 18:23   |  Репутация: [ + 0 ]
Условия не понял..

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
585 | Автор: Berestovskiy | 2012-06-12, 18:44   |  Репутация: [ + 211 ]
Там смысл в том что сначала вычисляется номинальный диаметр, а потом близкие значения разбрасываются по группам. Вроде так.
586 | Автор: GusMaN18 | 2012-06-12, 19:07   |  Репутация: [ + 0 ]
Так может формулки какие-нибудь напишешь ли мне вместо тебя гуглить и т.д.?)
А желательно - напиши алгоритм, тогда вообще будет отлично)


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
587 | Автор: Berestovskiy | 2012-06-12, 23:41   |  Репутация: [ + 211 ]
Сначала вводим кол-во деталей, затем номинальный диаметр с ним потом и будем все сравнивать, затем диаметры деталей, а вот потом и начинается самое интересное нужно что бы при сравнении диаметров с номинальным они отсеивались по группам, дальше не знаю как быть
вот начало
Program sortirovka;
USES CRT;
var
a:array[1..100] of real;
b:array[1..100] of real;
d:real;
i,j,n,k:integer;
begin
CLRSCR;
writeln('Êîëè÷åñòâî äåòàëåé');
readln(k);
writeln('Íîìèíàëüíûé äèàìåòð');
readln(d);
for i:=1 to k do
begin
writeln('Ðàçìåð äåòàëè #',i);
readln(a[i]);
d:=d+a[i];
end;
588 | Автор: GusMaN18 | 2012-06-12, 23:56   |  Репутация: [ + 0 ]
588 | Автор: GusMaN18 | 2012-06-12, 23:56   |  Репутация: [ + 0 ]
Всееем привет, нужна помощь по двум задачам на паскале(курсач такой курсач :c)

Решение логических задач с применением операторов цикла на языке программирования Pascal

Задача 1

Бригада из трех роботов собирает за день одного нового робота. Время жизни нового робота - пять дней, по истечении которых он погибает. Определить, сколько роботов будет успешно существовать через n дней, если на момент старта имеется 9 новых роботов. Роботы, не вошедшие в бригаду, простаивают.

Задача 2

Пароход в понедельник проплывает случайное расстояние от A до B; во вторник - в два раза больше, чем в понедельник; в среду - в три раза меньше, чем во вторник; в четверг - на 40% больше, чем в среду; в пятницу половину того, что он проплыл во вторник, среду и четверг вместе. В субботу и воскресенье пароход стоит. Определить полный путь парохода за n дней, если движение он начал в понедельник.
589 | Автор: Altair4eg | 2012-06-13, 00:03 | Изменено: Altair4eg - Ср, 2012-06-13, 00:05   |  Репутация: [ + 0 ]
Quote (M@RECS)
Помогите плиз, я написал прогу но почему то выдает одно и тоже значение помогите понять где ошибка вот условие задачи

может здесь
Quote
sum:=sum+num;

так нужно:
sum:=sum(f)+num;?

Добавлено (13.06.12, 05:56)
---------------------------------------------

Quote (Berestovskiy)
Зачем внешние ссылки то?)

Попытка наглядно показать, что поиском тоже можно пользоваться. И все-таки такая вещь не помешала бы и на "Примате".

Добавлено (13.06.12, 08:23)
---------------------------------------------

Quote
Бригада из трех роботов собирает за день одного нового робота.

Code
Var robots: array [1..5] of byte;
  n,i,sum:byte;
begin
  robots:=[0,0,0,0,9];//массив роботов по оставшимся дням жизни
  readln(n);
  for i:=1 to n do
  begin
   sum:=robots[1]+robots[2]+robots[3]+robots[4]+robots[5];//считаем сколько всего роботов
   if sum=0 then begin writeln('все роботы погибли, день:',n); exit; end; //если роботов больше нет сообщаем об этом и выходим
   robots[1]:=robots[2];//уменьшаем всем роботам время жизни на 1 день
   robots[2]:=robots[3];
   robots[3]:=robots[4];
   robots[4]:=robots[5];
   robots[5]:=sum div 3;//новые роботы каждый строится бригадой из трех
  end;
  sum:=robots[1]+robots[2]+robots[3]+robots[4]+robots[5];
  writeln('День:',n,'Осталось живых роботов:',sum);
end.
590 | Автор: Fireleo | 2012-06-13, 08:23   |  Репутация: [ + 30 ]
Quote (Fireleo)
robots:=[0,0,0,0,9];//массив роботов по оставшимся дням жизни


Fireleo, спасибо большое за решение, но вот тут после закрытия скобок(строка 4, столбец 22) выдаёт ошибку: "Ошибка:попытка присвоить переменной типа array [1..5] of byte выражение типа set of byte"
591 | Автор: Altair4eg | 2012-06-13, 23:11   |  Репутация: [ + 0 ]
А ну тогда так нельзя :)
Делай так:

robots[1]:=0;
robots[2]:=0;
robots[3]:=0;
robots[4]:=0;
robots[5]:=9;
592 | Автор: Fireleo | 2012-06-14, 01:01   |  Репутация: [ + 30 ]
"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:) ).Спасибо

Это он не компиля писал наверное или завтыкал)
Сделай так:
robots[5]:=9;
for i:=1 to 4 do
robots[i]:=0;
вместо этой строки[quote=Fireleo]  robots:=[0,0,0,0,9];//массив роботов по оставшимся дням жизни[/quote]

и должно пахать)


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
593 | Автор: Berestovskiy | 2012-06-14, 01:03   |  Репутация: [ + 211 ]
Эхх...опоздал я на 2 минуты))

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
594 | Автор: Berestovskiy | 2012-06-14, 01:03   |  Репутация: [ + 211 ]
Да без проблем:DD всё работает теперь :))

Добавлено (14.06.12, 17:14)
---------------------------------------------
А что скажете на счёт второй задачи?:)))

595 | Автор: Altair4eg | 2012-06-14, 17:14   |  Репутация: [ + 0 ]
Рады за тебя))

Напиши задачу вновь..)


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
596 | Автор: Berestovskiy | 2012-06-15, 00:00   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
596 | Автор: Berestovskiy | 2012-06-15, 00:00   |  Репутация: [ + 211 ]
Задача 2

Пароход в понедельник проплывает случайное расстояние от A до B; во вторник - в два раза больше, чем в понедельник; в среду - в три раза меньше, чем во вторник; в четверг - на 40% больше, чем в среду; в пятницу половину того, что он проплыл во вторник, среду и четверг вместе. В субботу и воскресенье пароход стоит. Определить полный путь парохода за n дней, если движение он начал в понедельник.

Воооот)
597 | Автор: Altair4eg | 2012-06-15, 04:36   |  Репутация: [ + 0 ]
Code
Var week: array [1..5] of real;//массив пройденного пути по дням недели
  a,b,total: real;
  n,i:byte;

procedure ClearWeek; //очистка массива за неделю
begin
  week[1]:=0;
  week[2]:=0;
  week[3]:=0;
  week[4]:=0;
  week[5]:=0;
end;

begin
  writeln('введите А');
  readln(a);
  writeln('введите В');
  readln(b);
  writeln('количество дней');
  readln(n);
  ClesrWeek;
  total:=0; //сколько всего пройдено
  for i:=1 to n do
   case (i mod 7) of
    1: writeln('День ',n,' пон, пройдено', mon:3:2,'км');
    2: writeln('День ',n,' втр, пройдено', Tue:3:2,'км');
    3: writeln('День ',n,' срд, пройдено', Wed:3:2,'км');
    4: writeln('День ',n,' чет, пройдено', Thu:3:2,'км');
    5: writeln('День ',n,' птн, пройдено', Fri:3:2,'км');
    6: writeln('День ',n,' сбт, пройдено 0 км');
   else  
    begin
     ClearWeek;
     writeln('День ',n,' вск, пройдено 0 км');
    end;
   {end;}//не помню нужен тут или нет.
  writeln('всего за ',n, ' дней, пройдено ',total:3:2,' километров.');
end.


Если будут ошибки скажешь где и какие.

Добавлено (15.06.12, 05:47)
---------------------------------------------
Функции по дням недели, не влезли сразу.

Code
function Mon:real;//функции по дням недели
begin
  randomize;
  week[1]:=random(b-a+1)+a;
  total:=total+week[1];
  Mon:=week[1];
end;

function Tue:real;
begin
  week[2]:=week[1]*2;
  total:=total+week[2];
  Tue:=week[2];
end;

function Wed:real;
begin
  week[3]:=week[2]/3;
  total:=total+week[3];
  Wed:=week[3];
end;

function Thu:real;
begin
  week[4]:=1.4*week[3];
  total:=total+week[4];
  Thu:=week[4];
end;

function Fri:real;
begin
  week[5]:=(week[2]+week[3]+week[4])/2;
  total:=total+week[5];
  Fri:=week[5];
end;
598 | Автор: Fireleo | 2012-06-15, 05:47   |  Репутация: [ + 30 ]
Quote (Fireleo)
function Mon:real;//функции по дням недели
begin
  randomize;
  week[1]:=random(b-a+1)+a;
  total:=total+week[1];
  Mon:=week[1];
end;

function Tue:real;
begin
  week[2]:=week[1]*2;
  total:=total+week[2];
  Tue:=week[2];
end;

function Wed:real;
begin
  week[3]:=week[2]/3;
  total:=total+week[3];
  Wed:=week[3];
end;

function Thu:real;
begin
  week[4]:=1.4*week[3];
  total:=total+week[4];
  Thu:=week[4];
end;

function Fri:real;
begin
  week[5]:=(week[2]+week[3]+week[4])/2;
  total:=total+week[5];
  Fri:=week[5];
end;


А куда это дописать*?
599 | Автор: Altair4eg | 2012-06-15, 21:19   |  Репутация: [ + 0 ]
помогите написать в паскале ----->Написать программу на языке Паскаль для вычисления значений функции y на интервале [a,b] с шагом h. Значения a,b и h ввести с клавиатуры. На экран вывести результат вычислений в виде таблицы.
a b h

5 7 0.1

y:=(sqr(3*x+2)-sqrt(3*x))/sqr(3*x)
600 | Автор: Andryha89 | 2012-06-15, 21:44   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Решения задач на Паскале!Срочно нужно!
Поиск: