OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:13

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 23 Декабрь, 2013 19:31 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
Задача.
Даны 5 строк, каждая строка состоит из 5 цифр.
Строка 1 состоит из (1 1 1 1 1).
Строка 2 из (2 2 2 2 2).
Если Строка 1 + Строка 2 = (3 3 3 3 3).
Есть еше Строка 3, Строка 4 и Строка 5.

Нада разработать алгоритм который суммирует 2 разные строки.
Я уже придумал алгоритм но думаю он неудобен если будут даны 100 строк.
мой алгоритм:
Begin
Str_1:='1';
Str_2:='2';
Operaciya:='+';

if Str_1=1 then
begin
a1:=1; a2:=1; a3:=1; a4:=1; a5:=1;
end;

if Str_2=2 then
begin
b1:=2; b2:=2; b3:=2; b4:=2; b5:=2;
end;

if Operaciya = + then
begin
b1+a1; b2+a2; b3+a3.....
и так далее.
Так нада перебрать для каждого случая для 5 строк.
Как сделать алгоритм лучше моего?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 23 Декабрь, 2013 20:31 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Билл, вы не перестаете удивлять новыми интересными задачами.

У меня предложение, чтобы обсуждать всё в рамках Компонентного Паскаля, напишите свой алгоритм в виде работающего модуля на нем в среде Блэкбокс. На многие вопросы при этом вы сами ответите, а потом уже обсудим, что надо улучшить.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 23 Декабрь, 2013 21:07 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Пример реализации символьных вычислений находится в модуле Integers в BlackBox.
Цитата:
Модуль Integers реализует абстрактный тип данных Integer для представления целых чисел произвольной точности. Он также содержит наиболее важные арифметические операции для таких чисел и набор операций преобразования. Арифметические операции включают сложение, умножение, возвежение в степень, вычисления частных, разностей и наибольших общих делителей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 28 Декабрь, 2013 21:27 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
Иван Денисов, Вот рабочий код моей программы как его улучшить? Я веду обучение, решая математические задачки, задача из алгебры, операции со строками в матрице
Код:
var
  str_1:real;
  str_2:real;
  x1,x2,x3,x4,x5:real;
  y1,y2,y3,y4,y5:real;
  z1,z2,z3,z4,z5:real;
  a1b1,a2b1,a3b1,a4b1,a5b1:real;
  a1b2,a2b2,a3b2,a4b2,a5b2:real;
  a1b3,a2b3,a3b3,a4b3,a5b3:real;
  a1b4,a2b4,a3b4,a4b4,a5b4:real;
  a1b5,a2b5,a3b5,a4b5,a5b5:real;
begin
   str_1:=1; str_2:=2;
(*______________________________________________________*)
   if str_1=1 then
   begin
   x1:=a1b1; x2:=a2b1; x3:=a3b1; x4:=a4b1; x5:=a5b1;
   end;

   if str_1=2 then
   begin
   x1:=a1b2; x2:=a2b2; x3:=a3b2; x4:=a4b2; x5:=a5b2;
   end;

   if str_1=3 then
   begin
   x1:=a1b3; x2:=a2b3; x3:=a3b3; x4:=a4b3; x5:=a5b3;
   end;

   if str_1=4 then
   begin
   x1:=a1b4; x2:=a2b4; x3:=a3b4; x4:=a4b4; x5:=a5b4;
   end;

   if str_1=5 then
   begin
   x1:=a1b5; x2:=a2b5; x3:=a3b5; x4:=a4b5; x5:=a5b5;
   end;

(*______________________________________________________*)
   if str_2=1 then
   begin
   y1:=a1b1; y2:=a2b1; y3:=a3b1; y4:=a4b1; y5:=a5b1;
   end;

   if str_1=2 then
   begin
   y1:=a1b2; y2:=a2b2; y3:=a3b2; y4:=a4b2; y5:=a5b2;
   end;

   if str_1=3 then
   begin
   y1:=a1b3; y2:=a2b3; y3:=a3b3; y4:=a4b3; y5:=a5b3;
   end;

   if str_1=4 then
   begin
   y1:=a1b4; y2:=a2b4; y3:=a3b4; y4:=a4b4; y5:=a5b4;
   end;

   if str_1=5 then
   begin
   y1:=a1b5; y2:=a2b5; y3:=a3b5; y4:=a4b5; y5:=a5b5;
   end;
   (*______________________________________________________*)

   z1:=x1-y1; z2:=x2-y2; z3:=x3-y3; z4:=x4-y4; z5:=x5-y5;
end;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 16:15 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Надо заменить твои переменные с цифрами в конце на массивы, а операции над ними сделать в виде циклов. Начнем с этого.
Твой алгоритм скорее всего легко описывается в виде двумерного массива и двух вложенных циклов.

Очень рекомендую все делать в Блэкбоксе и выкладывать тут рабочий код, иначе твою ветку перенесут в оффтоп. Этот раздел для делающих первые шаги в освоении Компонентного Паскаля, а не просто Паскаля.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 17:18 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Иван Денисов писал(а):
Этот раздел для делающих первые шаги в освоении Компонентного Паскаля, а не просто Паскаля.
Алгоритмизация к языку не привязана. Не обязательно, что администрация "Образовательного проекта Информатика-21" будет возражать...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB