Помощь - Поиск - Пользователи - Календарь
Полная версия: Слияние файлов и массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vicsem
Всем привет!
Люди помогите с решением 4 задачек, очень нужно

Условия:
15.28
type F1=file of integer
Пусть в каждом из файлов f и g элементы упорядочены по убыванию.
Требуется слить эти файлы в один h, также упорялочить по убыванию.
Решение задачи описать в виде процедуры merge(f, g, h) от параметров F1.

14.12
type M=set of 0…99
Описать функцию card(A), подсчитывающую количество элементов, в множестве А типа М.

14.30
type продукт=(хлеб, масло, молоко, мясо, рыба, соль, сыр, колбаса, сахар, чай, кофе);
ассортимент=set of продукт;
магазины=aray[1…20] of ассортимент;
описать роцедуру наличие(Маг., А, В, С), которая по инф из массива Маг типа магазины(Маг, ai – это множество продуктов, имеющихся в i-м магазине) присваивает параметрам А, В и С типа ассортимент следующие значения:
А – множество продуктов, которые есть во всех магазинах;
В – множество продуктов, каждый из которых есть хотябы в одном магазине;
С – множество продуктов, которых нет ни в одном магазине.

15.19
Дана непустая последовательность слов, содержащих от 1 до 8 букв;
между соседними словами – запятая, за последним – точка.
Напечатать все слова, отличные от последнего.
volvo
vicsem
Цитата
15.28

Посмотри здесь, что-то очень похожее. алгоритм слияния

Цитата
14.12

Код

type
  Index = 0 .. 99;
  M = set of Index;
const
  A: M = [1, 4, 7, 8];

function Card(X: M): Word;
  var i: Index; count: integer;
  begin
    count := 0;
    for i := Low(Index) to High(Index) do
      if i in X then inc(count);
    card := count
  end;

begin
  writeln(card(A));
end.


Цитата
14.30

Я сделал для 3 магазинов...

М
Решение задачи перенесено в FAQ: Множества
volvo

vicsem
Еще вопросик, чето я не доганяю.
Пробую разобраться и не получается.

Итак кусочек кода:

Код
type f1=file of integer;

var massf : array[1..100] of integer;
   tf: integer;
   f : f1;

begin
Assign(f, 'work\f.dat');
Reset(f);

repeat  { считывание чисел}
 tf := tf+1;
 read(f,massf[tf]);
until eof(f);


В файле f записаны числа:
10
6
3
При этом получается, что в massf записываются не числа из файла f
а непонятно что.
Почему?

Пользуйся тегами [ code] и [ /code] для исходников
volvo
vicsem
1. Ты используешь File Of Integer, а числа скорее всего так и записаны - в текстовом формате. А ведь это не одно и то же... Посмотри здесь, я уже объяснял разницу...

2. Начальное значение переменной tf кто задавать будет?
vicsem
Спасибо за обьяснение и подсказки.

А как проверить работоспособность задачи 14.30?
Запускаю, все отрабатывает, а результат как увидеть?
:p2:
volvo
vicsem
Посмотри сейчас, я добавил вывод элементов...
vicsem
Цитата(volvo @ 26.12.04 19:02)
vicsem
1. Ты используешь File Of Integer, а числа скорее всего так и записаны - в текстовом формате. А ведь это не одно и то же...

А как быть, в условиях задачи задано, что File Of Integer.
Как тогда правильно задать исхоодные файлы? unsure.gif

Или обьявлять их текстовыми и не мучиться? sad.gif
volvo
Объявляй текстовыми... Зачем тебе лишние проблемы?
vicsem
Цитата(volvo @ 26.12.04 19:39)
vicsem
Посмотри сейчас, я добавил вывод элементов...

Останавливается на write_set и пишет unknown identifier.
У меня TP7.0
В хелпе я такой команды не нашел.
volvo
write_set - это процедура (она тоже описана в программе...)
Проверь как следует, все ли скопировал... У меня тоже TP70 и все работает...
vicsem
Цитата(volvo @ 26.12.04 20:08)
write_set - это процедура (она тоже описана в программе...)
Проверь как следует, все ли скопировал... У меня тоже TP70 и все работает...

Проверил, "а слона то я и не заметил" :D

Все работает, ОГРОМНОЕ СПАСИБО!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.