Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Задания для контрольной работы. Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя




Вариант 1.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать ее, заменив все символы «*» на «+» в каждом нечетном по порядку слове и удалив все символы «!» в каждом четном по порядку слове.

Вариант 2.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Исключить все группы символов, расположенные между символами «(» и «)», включая сами скобки. Предполагается, что внутри каждой пары скобок нет других скобок.

Вариант 3.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Подсчитать наибольшее количество идущих подряд букв «а» в каждом слове.

Вариант 4.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого короткого слова.

Вариант 5.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти количество слов, первый и последний символы которых совпадают.

Вариант 6.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Получить новую строку, поменяв местами первое и последнее слова.

Вариант 7.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Заменить в словах все сочетания «то» на «это» и подсчитать количество таких преобразований.

Вариант 8.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого длинного слова.

Вариант 9.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого длинного слова.

Вариант 10.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. В самом длинном слове заменить все буквы «а» на «б».

Вариант 11.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать ее, расположив слова в порядке возрастания их длины.

Вариант 12.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Преобразовать ее, отсортировав их по первой букве (по алфавиту).

Вариант 13.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. В каждом слове найти номера первой и последней по порядку запятой и записать в вектор разность между этими номерами.

Вариант 14.

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

Вариант 15.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Если количество слов нечетное, то удалить слово из середины строки, в противном случае вставить в строку слово «нет».

Вариант 16.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. В каждом нечетном по порядку слове поменять местами первый и последний символы.

Вариант 17.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Поменять местами слова: первое – со вторым, третье – с четвертым и т.д. Если в строке нечетное число слов, последнее оставить как есть.

Вариант 18.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Все слова с нечетным количеством символов удалить, а все слова с четным количеством символом преобразовать, вставив в начало и конец слов буквы А.

Вариант 19.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Поменять местами самое короткое и самое длинное слова.

Вариант 20.

Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Удалить из нее слова с четным количеством символов.

 

Файлы

Файл - это поименованная область памяти на диске или другом внешнем запоминающем устройстве.

Любая программа, использующая существующий файл для ввода или создающая новый файл при выводе, неизбежно содержит шаги:

1. открытие файла (в соответствующем режиме);

2. обработка файла (чтение или запись);

3. закрытие файла.

Имеется ряд общих стандартных процедур для файлов всех типов:

Процедуры и функции Назначение
Assign(var f; String) Связывает файловую переменную f с име-нем физического файла, заданным в строке
Reset(var f [: File; RecSize: Word]) Открывает существующий файл с логичес-ким именем f для чтения
Rewrite(var f: File; [; RecSize: Word]) Создаёт и открывает новый файл с логи-ческим именем f для записи
Close(var f) Закрывает открытый канал ввода-вывода с логическим именем f
Eof(var f):Boolean Возвращает значение true, если достигнут конец файла f или false, если файл f пуст
Erase (var f) Удаляет закрытый физический файл, свя-занный с файловой переменной f
Rename (var f; NewName:String) Переименовывает закрытый физический файл, связанный с файловой переменной f

В таблице ниже приведены функции и процедуры, реализующие прямой доступ в типизированных файлах:

Процедуры и функции Назначение
FileSize(var f): Longlnt Возвращает реальное число записей в открытом файле f.
FilePos(var f): Longlnt Возвращает номер записи, на которую установлен текущий указатель в файле f.
Seek (var f; n: Longlnt) Назначает текущую позицию в файле f.
Truncate(var f) Удаляет все записи в файле f от позиции текущего указателя до конца файла

Примеры решения заданий

Задача 1. Создать файл целых данных. Найти сумму всех положительных и число отрицательных компонент этого файла.

Решение: Алгоритм решения задачи представлен на рис. 7.1.

Рис. 7.1. Алгоритм решения задачи 1

Программа в Turbo Pascal будет иметь следующий вид:

Program IntFile;

Uses Crt;

Var f: file of Integer;

i,j,s,k: Integer;

st: String;

Begin

ClrScr; {очистка окна}

Write('Введите имя файла >>');

Readln(st);

Assign(f, st);

Rewrite(f);

Write('Файл пуст! Введите элементы файла ');

Writeln('Конец ввода – любое нецелое >>')

Repeat

{$I-}; {отключаем проверку ошибки ввода-вывода}

Read(j);

{$I+}

i:=IOResult; {i=0 – нет ошибки ввода-вывода}

If i=0 then Write(f,j);

Until i<>0;

Writeln('Число элементов файла =', Filesize(f));

k:=0; s:=0;

Seek(f,0); {перевод указателя файла на начало}

While not(Eof(f)) do

begin

Read(f,j);

Write(j, ' ');

If j>0 then s:=s+j;

If j<0 then k:=k+1;

End;

Writeln;

Writeln('Сумма положительных = ', s);

Writeln('Число отрицальеных = ', k);

Close(f);

End.

 

Задача 2. Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке.

Решение: Алгоритм решения задачи представлен на рис. 7.2.

Программа в Turbo Pascal будет иметь следующий вид:

Program Filef_to_g;

Uses Crt;

Var f,g: File of Char;

ch: Char;

n,i: Word;

Begin

ClrScr;

Assign(f,'file1.dat');

{$I-}; {отключаем проверку ошибки ввода-вывода}

Reset(f);

{$I+}

{если файл не существует, создаем новый}

If IOResult<>0 then Rewrite(f);

{если файл пустой, заполняем его}

If FileSize(f)=0 then begin

Writeln('Файл пуст! Введите элементы!');

Write('(вводятся символьные элементы)');

Write('Конец ввода – пропуск символа');

Repeat

{$I-};

Readln(ch);

{$I+};

i:=IOResult;

If i=0 then Write(f,ch);

Until i<>0;

End;

Рис. 7.2. Алгоритм решения задачи 2

Assign(g,'file2.dat');

Rewrite(g);

n:=FileSize(f);

Repeat

Dec(n);

Seek(f,n);

Read(f,ch);

Write(g,ch);

Until n=0;

Close(f);

Close(g);

End.

Элементы файла f читаются с конца в цикле и записываются в файл g. Для позиционирования указателя процедура Seek применяется перед чтением каждого символа.

 

Задача 3. Написать процедуру для создания двумерного массива и записи его в файл.

Программа в Turbo Pascal будет иметь следующий вид:

Procedure Wr_array;

Var i,j: Integer;

Begin

Assign(f,'array.dat');

{$I-}

Reset(f);

{$I+}

If IOResult=0

then

WriteLn('Файл уже существует')

else

begin

Rewrite(f); {открытие файла для

записи}

For i:=l to n do

For j:=l to n do

A[i,j]:=i*j;

Write(f,A); {запись массива в файл}

Close(f);

WriteLn('Создан новый файл');

End;

End;





Поделиться с друзьями:


Дата добавления: 2016-03-27; Мы поможем в написании ваших работ!; просмотров: 1682 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2213 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.