Турбо паскаль, 1 задача, файл/записи/массивы

ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

Помогите пожалуйста.Задача на паскале.
Каждая запись файла – матрица 5*5. Убрать из файла одинаковые матрицы.
ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

не обязательно код,можно алгоритм...хотя лучше код)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Создаем массив из матриц, считываем из файла матрицы в массив. Потом сверяем каждую пару матриц поэлементно: если хоть один элемент не совпадает - переходим к следующей, если все совпадают - удаляем одну из матриц.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

хм..спасибо

ишо вопрос:
есть отсортированый массив чисел,нужно посчитать сколько раз встречаюца 4 одинаковых цифры подряд
например :1 1 1 1 3 3 4 4 4 4 n=2
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

var i,n:byte;
a:array[1..50] of ineteger;
begin
k:=0;n:=0;
for i:=1 to 50 do
begin
if (a=a[i+1]) and (a[i+1]=a[i+2]) and (a[i+2]=a[i+3) then n:=n+1;
end;
end.

Разумеется сначала надо задать сам массив с клавиатуры или через random.
Если поможет оставьте отзыв. Это самое простое из того что можно предложить. До универсальности далеко! :)

Если что обращайтесь!
ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

в вашем коде не учтен случай
1 1 1 1 1 2 тут подряд 5 единиц,а нужно накидывать счетчик если только 4 подряд

мне кажется тут с вайлом надо,но написать корректно не получаеца
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Можно попробовать что-то подобное:

n:=0;k:=0;
repeat
i:=i+1;
if array=array[i+1] then k:=k+1;
if k=4 then n:=n+1;
until i=номер последнего элемента в массиве;
ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

опять таки для теста
1 1 1 1 1 будет n=1,тк после каждого увелечения k будет проверяца равно ли k=4...)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

dr.Jekill, а потом к уйдет в заоблачные дали. Я уж не говорю, что на набор 1 1 2 2 3 3 4 4 ваш код тоже вернет 1. А всего-то надо было в самый первый код добавить проверку and a[i+4]<>a[i+3]
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Мы не ищем легких путей! :)
Ответить