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

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

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

miss_graffiti


Долгожитель

KMA, с динамическим в паскале замучаешься... это надо иметь представление о ссылках, как минимум. Пусть уж лучше считает, что сотрудников не больше 100.

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 20 апр. 2006 18:50 | IP
KMA



Долгожитель

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


-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 апр. 2006 19:36 | IP
miss_graffiti


Долгожитель

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

если человеку сложно разобраться со статическими массивами, не надо его грузить динамическими...

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

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 20 апр. 2006 23:59 | IP
KMA



Долгожитель

Просто он же использует типизированный файл, при помощи процедур seek (files, i); где files это имя файла, а i это номер элемента файла, то она устанавливает вот эта процедура устанавливает указатель на i элемент, при чем ведется отсчет с 0, и функции fileSize (files); которая возвращет значение количества элементов файла, можно обращаться с файлами, практчески как с массивом, толко вот записи больше... А так, отличий никаких нет...

По поводу быстроты работы, честно скажу, что это спорный вопрос, для одной операции с массивом требуется вначале все считать, то есть потратить столько же операций, сколько и для простой сортировки этого файла, например... Однако всякое бывает... Если операций ДЕЙСТВИТЕЛЬНО МНОГО, то тогда действительно лучше использовать массив, при чем лучше ссылок, но можно и простой... Но это все теоретические вопросы, надо больше практики...

Итак Abor что тебе еще не понятно в твоей задаче, как найти людей с одинаковыми номерами??? Или другое???  

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 апр. 2006 11:48 | IP
Abror


Удален

Да мне не понятно как вывести людей с первыми двумя одинаковыми номерами?? Еше можно вопрос  почему нельзя использовать расширение pas?
И еше раз можно что такое seek?? Спасибо!

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 апр. 2006 13:56 | IP
KMA



Долгожитель

Угу... Смотри у тебя есть файл... Так как он типизированный, то мы знаем по сколько места отводится под каждый элемент этого файла... Следовательно мы можем обращаться к этим элементам когда захотим, вот для этого и служит Seek (f, i); где f твоя файловая переменная, а i номер элемента (аналогию можно провести с массивом mas {i}, т. е. ты обращаешься к элементу массива с номером i. а файл соответственно, если его имя mas то будет выглядеть так seek (mas, i)). Расширение pas можно использоватЬ, можно использовать хоть jpg... Но если ты создаешь свою программу, которая работает с определенными типами данных, то лучше давать названия, которых нет, так как, например, по твоим записям получается то, что это файл может быть прочитан программой Pascal. Но прочитает то он неверно... Вот в чем вся делема, т. е. не надо создавать такое расширение файла, который заведомо будет читаться неверно... Это хорошо у тебя один файл, а если программа используется в принципе многократно??? Ерунда получается, ведь так...

Сравниния я напишу, во всяком случае постараюсь доступно объяснить, но не сейчас, попозже...


(Сообщение отредактировал KMA 21 апр. 2006 19:54)

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 апр. 2006 19:53 | IP
Abror


Удален

Про расширение я понял спасибо! А почему мы пишем seek(f,0);
а не seek(f,i);?

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 апр. 2006 21:18 | IP
KMA



Долгожитель

Мне было надо начинать с первого элемента файла, поэтому я и пишу с 0, а не с какого-то i... Т. е. я заменил твое ReSet на более умную операцию...

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 апр. 2006 22:29 | IP
KMA



Долгожитель

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

 seek (f, 0);
 for i:= 0 to fileSize (f)-1 do
  begin
   read (f, buf);
   mas{i}:=buf
  end;

for i:=0 to file fileSize (f)-1 do
  begin
   flag:=true;
   for j:=i+1 to fileSize (f) do
    begin
     if (mas{i}.number[1]=mas[j].number [1]) and (mas{i}.number[2]=mas[j].number [2]) and (mas{j}.number<>'')
         then
          begin
           if flag
              then writeLn (mas{i}.name, ' ', mas{i}.surname)
           flag:=false;
           mas[j].number:='';
          end;
  end;


(Сообщение отредактировал KMA 22 апр. 2006 1:02)

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 апр. 2006 1:01 | IP
Guest



Новичок

Помогите, пожалуйста решить три задачи (или хотя бы одну), задачи тут_http://www.nexusgod.newmail.ru/z01.txt

Всего сообщений: Нет | Присоединился: Never | Отправлено: 23 апр. 2006 12:26 | 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

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