Помощь - Поиск - Пользователи - Календарь
Полная версия: Процедуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
emil
помогите решить задачу:
Написать процедуру, считывающую из текстового файла массив чисел размера N. Если сумма этих чисел окажется четной , то увеличить размер массива на одну строку, заполненную случайными числами из диапазона от 5 до 30. Вывести массив на экран.
kase666
PROGRAM MATRIX;
USES CRT;
VAR A:ARRAY[1..100,1..100] OF INTEGER; {твоя матрица}
    F:TEXT                                                {текстовый файл с данными}
    INITSTR, STR1:STRING;d:char;
    N,DEL_X,DEL_Y,MAX,I,J,COUNT,CODE,RAZ_X, RAZ_Y:INTEGER;

BEGIN
textmode(3);
textbackground(0);
textcolor(15);
CLRSCR;
d:=#205;
ASSIGN(F,'MATRIX.TXT');RESET(F);
    REPEAT BEGIN
    readLN(f,INITSTR);
    IF INITSTR='<==========>' THEN
       {после нахождения этой строки считаем 
        что данные расположены за ней}
       BEGIN
       readLN(f,RAZ_X);{сначала в файле указан размер матрицы}
       readLN(f,RAZ_Y);
       FOR I:=1 TO RAZ_Y DO BEGIN
         INITSTR:='';J:=0;
         readLN(f,INITSTR);{далее считываем колличество строк 
                                     матрицы и разбиваем их на элементы}
         REPEAT
         J:=J+1;
         IF (INITSTR[J]=' ') THEN BEGIN
         COUNT:=COUNT+1;
         val(STR1,A[COUNT,I],CODE);
         STR1:='';
         IF J=LENGTH(INITSTR) THEN COUNT:=0;
         END;
         IF (INITSTR[J]<>' ') THEN STR1:=STR1+INITSTR[J];
         UNTIL (J=LENGTH(INITSTR));

       END;
       END;
    END
    UNTIL EOF(F);
    CLOSE(F);
    WRITELN('=========загружена матрица размером ',RAZ_X,'x',RAZ_Y,'=========');
    WRITELN;
end.


структура файла matrix.txt
здесь может быть комментарий
снизу две 10 указывают на размер X и Y
ну а далее сама матрица
в конце строк матрицы обязательно должен быть пробел
<==========>
10
10
12 32 4 7 1 0 98 65 234 2
2 2 2 2 2 2 2 255 2 2
5 5 5 5 5 5 5 5 5 5
9 9 9 9 9 9 9 9 9 9
1 1 1 1 1 1 1 1 1 1
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
6 5 4 0 0 0 0 0 3 1


ВСЕ ТЕПЕРЬ ДЕЛАЙ С НЕЙ ЧТО ХОЧЕШЬ!!!

Теги не для тебя созданы?
volvo
kase666, матрицу можно нормально прочесть из файла без всяких сохраненных размерностей... Пример - здесь:
Запись и чтение фаила + матрица

И уж конечно можно обойтись без чтения в строку и извлечения из нее чисел...
kase666
Цитата(volvo @ 22.12.2005 17:17) *

kase666, матрицу можно нормально прочесть из файла без всяких сохраненных размерностей... Пример - здесь:
Запись и чтение фаила + матрица

И уж конечно можно обойтись без чтения в строку и извлечения из нее чисел...


ну да! круто...
помог бы с мультисписками-то...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.