Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 20.11.2010, 20:10   #11 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

На #9
Справка среды разработки Delphi в полной мере удовлетворит ваше любопытство
На #10
Не вижу повода для улыбок, как бы вам не пришлось при сдаче лабы погрустить. Улыбаться нам нужно, глядя на ваши вопросы.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием

Старый 20.11.2010, 20:10
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Скорее всего тут можно найти ответ

Даны три вещественных числа...
Cоздать файл целых чисел
Массивы
Напишите функцию, преобразующую символы табуляции в последовательность из n пробелов
Программа перемножения длинных чисел на С++

Старый 20.11.2010, 20:13   #12 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Куда вы числа должны сохранять, чтобы обработку сделать? В стек?
"В стек?..." -Извините не понял...
iron-mik вне форума   Ответить с цитированием
Старый 20.11.2010, 20:20   #13 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Не вижу повода для улыбок, как бы вам не пришлось при сдаче лабы погрустить. Улыбаться нам нужно, глядя на ваши вопросы.
Полностью с вами согласен. Тут не до улыбок. Но и унывать я не собераюсь- бывает мучаешься с этой задачей день, два, а то и неделю, но в конце- концов ответ приходит. Уверен вы и сами понимаете.
iron-mik вне форума   Ответить с цитированием
Старый 20.11.2010, 20:25   #14 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Если не поняли - не заморачивайтесь, возможно, вам пока рано это знать. Реализуйте через работу с файлами.

Для начала, определите в разделе переменных файловую переменную F командой F: TextFile;
В основном модуле свяжите переменную F с текстовым файлом в корневом каталоге диска C командой AssignFile(F,'имя_файла');
Откройте файл по перезаписи командой rewrite(F);
В цикле с постусловием начинайте вводить значения, параллельно записывая их в файл командой writeln(F,имя_переменной);
В цикле условием для выхода должно быть выражение имя_переменной=0
Затем, как предлагал выше Vladimir_S, организуйте чтение значений из файла и поиск минимальной разницы.
В конце не забудьте закрыть файл командой CloseFile(F); и при необходимости удалить его с диска командой erase(F); или DeleteFile(имя_файла);

З.Ы. имя_переменной, естественно, это латинский идентификатор для текущего значения элемента последовательности
__________________
Убить всех человеков!

Последний раз редактировалось AlexZir; 21.11.2010 в 10:45 Причина: исправил ошибочные операторы :)
AlexZir вне форума   Ответить с цитированием
Старый 20.11.2010, 20:50   #15 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Alex, только, мне помнится, в отличие от Паскаля, в Delphi команды имеют вид AssignFile и CloseFile, остальные, включая Append, такие же, как и в Паскале. Во всяком случае, когда я (сто лет назад) чего-то в Delphi творил, то в моей версии (Delphi 5, если не ошибаюсь), было так.
А еще есть одна идиотская идея - нельзя ли в дельфийской форме в процессе работы программы очищать и повторно заполнять строку при появлении нового значения Min? Это бы решило проблему даже без файла.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 20.11.2010, 21:26   #16 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S к сожалению формы в Делфи тоже пока не используем. Это вроде у нас как раз следующая тема.
С файлом я тоже ничего не понимаю.
Но вот со строками я кое-что набросал, посмотрите пожалуйста:

Код:
var
  
  i,Nmin:integer;
  minRaz:real;

  
   s,c:string;
   Raz:real;
   el:real;
begin

 
  i:=1;
  writeln('Vvedite elementi');
  readln(el);

  minRaz:=abs(el-i);
  

  str(minRaz:1:0,c);
  s:=s+c;

  repeat
    i:=i+1;
    readln(el);

    Raz:=abs(el-i);
    str(Raz:1:0,c);
    s:=s+c;

    if (abs(el-i)<minRaz) and (el<>0) then
      begin
        minRaz:=abs(el-i);

      end;

  until el=0;

  str(minRaz:1:0,c);
  for i:=1 to length(s) do
    if s[i]=c then writeln('i=',i);

  writeln('minRaz=',minRaz:3:2);
    readln;
end.
Но есть 1 проблема: как сказано в задании числа вещественные, а если вводить числа с целой частью программа будет работать не верно, так как когда я добавляю в строку разницу- она добаляется без целой части, иначе у меня не получилось...
iron-mik вне форума   Ответить с цитированием
Старый 21.11.2010, 10:28   #17 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так... Ну кое-что проясняется.
Уважаемый Iron-mik, давайте всё же будем называть вещи своими именами. Судя по Вашему коду, к изучению Delphi вы еще даже и не приступали, а язык, на котором написана программа, называется Паскаль. Так бы и сказали - нужна программа на Паскале, так нет - Delphi! Позже Вы узнаете, что Паскаль входит в Delphi как составная часть, но при этом существенно преобразуется - например, исчезают экранные ввод и вывод, изменяется сама структура программ и т.п.
Ну если Паскаль, то уже легче. Подумаю.
Vladimir_S вне форума   Ответить с цитированием
Старый 21.11.2010, 10:49   #18 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
нельзя ли в дельфийской форме в процессе работы программы очищать и повторно заполнять строку при появлении нового значения Min?
Можно, для этого нужно просто изменить свойство Caption в TLabel, Text в TEdit или Line в TMemo в зависимости от используемого компонента, и, естественно, применять преобразование типа FloatToStr(MIN).

Владимир, не исключено, что нужно консольное приложение, а там листинг во многом совпадает с Pascal-евским.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 21.11.2010, 14:43   #19 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну вот вариант с файлом:

Код:
var
  f:TEXT;
  i:integer;
  el,Raz,minRaz:real;
begin
  Assign(f,'C:\tt_tt');
  ReWrite(f);
  i:=1;
  writeln('Vvedite elementi:');
  Write(i:3,'  ');
  readln(el);

  minRaz:=abs(el-i);
  WriteLn(f,i);

  repeat
    i:=i+1;
    Write(i:3,'  ');
    readln(el);

    Raz:=abs(el-i);

    if (Raz<minRaz) and (el<>0) then
      begin
        minRaz:=Raz;
        ReWrite(f);
        WriteLn(f,i);
      end
    else
    if (Raz=minRaz) and (el<>0) then
      WriteLn(f,i);

  until el=0;

  Close(f);
  ReSet(f);
  WriteLn;
  Writeln('Nomera:');
  Repeat
   ReadLn(f,i);
   Write(i:3,' ');
  Until EoF(f);
  Close(f);
  Erase(f);
  writeln;

  writeln('minRaz=',minRaz:3:2);
  readln;
end.
А со строками - нет, не получается.
Vladimir_S вне форума   Ответить с цитированием
Старый 22.11.2010, 21:52   #20 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, всё отлично работает! Попробую сдать... Спосибо вам большое Vladimir, и вам Alex!
Жалею только что раньше не обращался к вам за помощью...
iron-mik вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:12.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.