Ввести путь к файлу и разобрать его выводя каждую вложенную папку с новой строки

Обновлено: 04.07.2024

Задача: с клавиатуры вводится число N, обозначающее количество футболистов команды «Шайба», а затем – N строк, в каждой из которых – информация об одном футболисте таком формате:

Все данные разделяются одним пробелом. Нужно подсчитать, сколько футболистов, родившихся в период с 1988 по1990 год, не забили мячей вообще.

for i:=1 to N do begin

Посимвольный ввод

repeat read(c); until c = ' ';

Ввод года рождения: var Year: integer; read(Year);

Ввод числа голов и переход к следующей строке: readln(Gol);

var Gol: integer;

Программа

i, N, count, Year, Gol: integer;

for i:=1 to N do begin

repeat read(c); until c = ' ';

repeat read(c); until c = ' ';

if (1988 <= Year) and (year <= 1990) and

(Gol = 0) then count := count + 1;

Посимвольный ввод

Если фамилия нужна:

Посимвольный ввод

Если нужно хранить все фамилии:

var fam: array[1..MAX] of string;

fam[i] := fam[i] + c; until c = ' ';

Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов,

которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом

Все элементы множества должны принадлежать одному из

скалярных типов, кроме вещественного. Этот тип называется базовым типом множества.

Базовый тип задается диапазоном или перечислением.

Область значений типа множество – набор всевозможных подмножеств, составленных из элементов базового типа.

В выражениях на Паскале значения элементов множества

указываются в квадратных скобках:

Если множество не имеет элементов, оно называется пустым и обозначается как [ ] .

Количество элементов называется его мощностью . Количество элементов множества не должно превышать

256, соответственно номера значений базового типа должны находиться в диапазоне 0..255.

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

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Ввести путь к файлу и "разобрать" его, выводя каждую вложенную папку с новой строки
Пример:
Введите путь к файлу:
C:\Мои документы\10-Б\Вася\qq.exe
Результат:
C:
Мои документы
10-Б
Вася
qq.exe
(символьные строки)

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


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


Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один". "девять", начиная каждое предложение с новой строки
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до.


Дан массив строк: "red", "green", "black", "white", "blue". Запишите в файл элементы массива построчно (в новой строке)
пишу так но не помогает: static void Main(string args) < string.

Решение


Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом "год", "года" или "лет"
Здравствуйте! Помогите решить задачу! Ввести возраст человека (от 1 до 150 лет) и вывести его.


Ввести пользователя "гость" или "админ" по его паролю
Ввести пользователя &quot;гость&quot; или &quot;админ&quot; по его паролю , если пароль не верный требуется повторить.

Слайд 51 из презентации «Программирование на языке Паскаль»

Похожие презентации

краткое содержание других презентаций на тему слайда

«Интерфейсы. Контейнерные классы» - Граф. Обход дерева. Использование стандартных коллекций. Область применения интерфейсов. Отличия интерфейса от абстрактного класса. Очередь. Пример использования класса. Параметризованные интерфейсы. Операция. Monster Vasia. Параметризованные коллекции. Виды клонирования. Контейнеры. Интерфейсы. Программирование на языке высокого уровня.

«Грамматика языков» - В компиляторах КЗ-языки не используются. По структуре своих правил данная грамматика G1 является праволинейной и относится к типу 3. Классификация языков. КС-грамматики широко используются при описании синтаксических конструкций языков программирования. Кафедра «Автоматизированные станочные системы» Dept. of Automated Manufacturing Systems.

«Среда Delphi» - Пример создания простейшего приложения. 6. Основы языка программирования Паскаль. 2. Понятие визуальной среды разработки. 7. Пример создания простейшего приложения. 1. Основы работы в среде Delphi. Color – цвет формы. Далее: Лабораторная работа №1. «Изучение основных приемов работы в среде Delphi. Выбор среды разработки.

«Языки програмирования» - Языки программирования. Кобол. Искусственные языки. Настольные СУБД. Ошибки. Алгол. Уровни языков программирования. Структурированный язык запросов SQL. XML. Обзор языков программирования. Основные системы программирования. Языки программирования высокого уровня. Си++. Бейсик. HTML. Общеобразовательная школа.

«Java 5» - Перечисления. Varargs. Методы. Смешение generic и не-generic кода. Generics и коллекции. Double apply. New Java language fatures. Импортирование статических членов. Upper bounded wcard. Множество экземпляров перечисления. Интерфейс. Реализация Generic. Параметризация класса. Определение метода. Сумма чисел в коллекции.

«Введение в С» - Стандартный конструктор. Конструкторы. Class A. Деструктор для класса. Конструкторы с дополнительными параметрами. Конструктор копирования по умолчанию. Модификаторы доступа. Множественное наследование. Модификатор. Введение в С++. Конструктор копирования. Наследование. Объект. Виртуальные функции. Деструкторы.

Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

1. В файле записан текст. Нужно записать в другой файл в столбик все слова, встречающиеся в тексте, в алфавитном порядке, и количество повторений для каждого слова. (алфавитно-частотный словарь) Реализация с помощью линейного списка

2. В файле записан текст. Нужно записать в другой файл в столбик все слова, встречающиеся в тексте, в алфавитном порядке, и количество повторений для каждого слова. (алфавитно-частотный словарь) Реализация с помощью двусвязного линейного списка

3. В файле записан текст. Нужно записать в другой файл в столбик все слова, встречающиеся в тексте, в алфавитном порядке, и количество повторений для каждого слова. (алфавитно-частотный словарь) Реализация с помощью двусвязного линейного списка. Вывести список слов в порядке убывания частоты, то есть, сначала те слова, которые встречаются чаще всего.

4. Составить рекурсивную функцию вычисленияn-го члена арифметической прогрессии 3, 7, … и вывести первые 10 членов прогрессии.

5. Составить рекурсивную функцию вычисления n-го члена геометрической 1, 2, … и вывести первые 8 членов прогрессии.

6. Составить рекурсивную функцию вычисления n-го члена последовательности: а1= 1, ai = ai-1*i. Найти сумму 2-го и 5-го членов последовательности.

7. Составить рекурсивную функцию вычисления n-го члена последовательности: а1= 0, ai = 2*ai-1+i. Найти произведение 3-го и 7-го членов последовательности.

8. Ввести номер месяца и номер дня, вывести число дней, оставшихся до Нового года.

9. Составить рекурсивную функцию нахождения суммы n членов арифметической прогрессии 1, 3, …Найти сумму с 5-го по 10-й членов прогрессии.

10. Составить рекурсивную процедуру, которая печатает введенное натуральное число в восьмеричном представлении.

11. Найти наибольший общий делитель для чисел A, B, C, используя рекурсивную функцию нахождения наибольшего общего делителя двух натуральных чисел.

12. Сократить дробь a/b (a, b – введенные натуральные числа), используя рекурсивную функцию нахождения наибольшего общего делителя двух натуральных чисел.

13. Вычислить (42 + 23)/2-2 , используя рекурсивную функцию возведения в степень.

14. Заполнить матрицу из 8 строк и 5 столбцов случайными числами в интервале [-10,10] и вывести ее на экран. Вывести на экран строку, сумма элементов которой максимальна.

15. Найти минимальный и максимальный элементы в матрице их номера.

16. Заполнить матрицу из 7 строк и 7 столбцов случайными числами в интервале [10,90] и вывести ее на экран. Заполнить элементы, отмеченные зеленым фоном, числами 99, и вывести полученную матрицу на экран.

17. Заполнить матрицу из 7 строк и 7 столбцов случайными числами в интервале [10,90] и вывести ее на экран. Заполнить элементы, отмеченные зеленым фоном, числами 99, и вывести полученную матрицу на экран.

18. Вывести в алфавитном порядке фамилии и имена всех футболистов, которые забили хотя бы один гол. В списке не более 100 футболистов.

19. Ввести арифметическое выражение c числами до 10, в котором можно использовать сложение и вычитание. Вычислить это выражение.

20. Ввести арифметическое выражение c числами до 10, в котором можно использовать сложение, вычитание и умножение. Вычислить это выражение.

21. Ввести путь к файлу и «разобрать» его, выводя каждую вложенную папку с новой строки

22. Ввести символьную строку и проверить, является ли она палиндромом (палиндром читается одинаково в обоих направлениях).

23. Заполнить массив из 10 элементов случайными числами в интервале [-50..50] и отсортировать его с помощью алгоритма быстрой сортировки.

24. Заполнить массив из 10 элементов случайными числами в интервале [-50..50] и отсортировать его по убыванию с помощью алгоритма быстрой сортировки.

25. Заполнить массив из 500 элементов случайными числами в интервале [0..100]. Отсортировать его по возрастанию двумя способами – методом «пузырька» и методом «быстрой сортировки». Вывести на экран число перестановок элементов массива в том и в другом случае. Массив выводить на экран не нужно.

26. Написать программу, которая сортирует массив по возрастанию и ищет в нем элемент, равный X (это число вводится с клавиатуры). Использовать двоичный поиск.

27. Написать программу, которая сортирует массив ПО УБЫВАНИЮ и ищет в нем элемент, равный X (это число вводится с клавиатуры). Использовать двоичный поиск.

28. Написать программу, которая считает среднее число шагов в двоичном поиске для массива из 32 элементов в интервале [0,100]. Для поиска использовать 1000 случайных чисел в этом же интервале.

29. Заполните массив степенями числа 2, так чтобы последний элемент массива был равен 1, а каждый предыдущий был в 2 раза больше следующего. Например: 32 16 8 4 2 1

Для связи файла в коде программы и действительного файла на внешнем носителе используется процедура ASSIGN :

Текстовые файлы в паскале: процедуры работы

Возможные расширения файлов:
*.txt, *.log,
*.htm, *.html

Метод работы с текстовым файлом в Паскале предусматривает лишь последовательный доступ к каждой строке файла. Это означает, что начинать всегда возможно только с первой строки, затем проходя по каждой строке, дойти постепенно до необходимой. Т.е. можно сказать, что чтение (или запись) из файла (в файл) ведутся байт за байтом от начала к концу.

Предусмотрены два режима работы: режим для записи в файл информации и для чтения ее из файла. Одновременная запись и чтение запрещены.

Открытие файла

Допустим, мы в программе описали переменную для работы с текстовым файлом:

Рассмотрим дальнейшую последовательность работы с ним, и рассмотрим процедуры, необходимые для работы с текстовым файлом в Паскале:

процедура открытия существующего файла для чтения при последовательном доступе:

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

процедура добавления в конец:

  • При открытии курсор устанавливается в начало файла.

открытие файла

Чтение из файла

Read (f, список переменных); ReadLn (f, список переменных);

Отличие ReadLn от Read в том, что при использовании readln после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки.

  • чтение осуществляется с той позиции, где в данный момент стоит курсор;
  • после чтения курсор сдвигается к первому непрочитанному символу.

Чтение до конца строки

close ( f ); reset ( f );

Запись в текстовый файл

Write (f, список переменных); WriteLn (f, список переменных);

Процедуры работы с файлом и закрытие файла

Нахождение конца файла:

Логическая функция, возвращающая True, если достигнут конец файла.

Нахождение конца строки:

Логическая функция, возвращающая True, если достигнут конец строки.

Удалить файл в Паскале

Переименование файла в Паскале

rename(переменная_файла,'новое имя файла');

Закрытие:

Важно: Таким образом, работа с файлом осуществляется через три основных шага:

Рассмотрим пример работы с файлами в паскале:

Пример 1: В файле text.txt записаны строки. Вывести первую и третью из них на экран.
(предварительно создать text.txt с тремя строками)

var filetext: text; a,b,c:string; begin assign(filetext,'c:\text.txt'); reset(filetext); readln(filetext,a); readln(filetext,b); readln(filetext,c); close(filetext); writeln(a); writeln(c); end.

Пример 2: Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).

* Из задачника М. Э. Абрамян (Text4)

var F: Text; N,K:integer; Name:String; C:Char; begin Assign(F,'c:\text.txt'); Reset(F); N:=0; K:=0; While not eof(F) do begin inc(N); While not eoln(f) do begin inc(K); Read(F,C); end; Readln(F); end; Close(F); Writeln(N,' ',K); end.

Пример 3:
Считать из файла input.txt числа (числа записаны в столбик). Затем записать их произведение в файл output.txt

var p, x: integer; f: text; begin assign(f, 'input.txt'); reset(f); p := 1; while not eof(f) do begin readln(f, x); p := p * x; end; close(f); assign(f, 'output.txt'); rewrite(f); writeln(f, 'Произведение чисел ', p); close(f); end.

var filetext: text; a:string; i:integer; begin assign(filetext,'c:\text.txt'); rewrite(filetext); for i:=1 to 10 do . reset(filetext); for i:=1 to 10 do begin . . end; close(filetext); end.

pascal file text2. Даны целые положительные числа N и K. Создать текстовый файл и записать в него N строк, каждая из которых состоит из K символов «*» (звездочка).

* Из задачника М. Э. Абрамян (Text1)

pascal file text3. Дана строка S и текстовый файл. Добавить строку S в конец файла.

* Из задачника М. Э. Абрамян (Text5)

Пример 4: Дана строка S и текстовый файл. Добавить строку S в начало файла.

* Из задачника М. Э. Абрамян (Text7)

var F_in,F_out: Text; Name,S: String; begin Write('S: '); Readln(S); Assign(F_in,'c:\text.txt'); Reset(F_in); Assign(F_out,'c:\text1.txt'); Rewrite(F_out); Writeln(F_out,S); While not eof(F_in) do begin Readln(F_in,S); Writeln(F_out,S); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,'c:\text.txt'); end.

pascal file text4. Дано целое число K и текстовый файл. В данном файле вставить пустую строку перед строкой с номером K . Если строки с таким номером нет, то оставить файл без изменений.
Для решения задачи можно использовать дополнительный временный файл.

* Из задачника М. Э. Абрамян (Text9)

Пример 5: Дано целое число K и текстовый файл. Удалить из файла строку с номером K . Если строки с таким номером нет, то оставить файл без изменений.

* Из задачника М. Э. Абрамян (Text15)

var F_in,F_out: Text; Name,line: string; K,i:integer; begin Write('K: '); Readln(K); Assign(F_in,'c:\text.txt'); Assign(F_out,'c:\text1.txt'); Reset(F_in); Rewrite(F_out); i:=0; While not eof(F_in) do begin Readln(F_in,line); inc(i); if i<>K then Writeln(F_out,line); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,'c:\text.txt'); end.

Пример 6: Дан текстовый файл F1 с набором нулей и единиц. Необходимо заменить все вхождения сочетаний 101 на 000 . Скорректированные записи поместить в файл F2 .

var f1,f2: text; pole:string; pz:integer; begin assign(f1,'1.txt'); assign(f2,'2.txt'); reset(f1); rewrite(f2); while not eof(f1) do begin readln(f1, pole); while pos('101',pole)<>0 do begin pz:=pos('101',pole); delete(pole,pz,3); insert('000',pole,pz); end; writeln(f2,pole) end; close(f1); close(f2); end.

Работа с данными из файла как с массивом

  • для сортировки необходим массив, для того чтобы одновременно работать со всеми числами;
  • неизвестно общее количество чисел.
  • объявляем массив для 100 элементов;
  • открываем файл на чтение, просчитываем количество чисел, заполняя массив, сохраняем количество в N;
  • сортируем N элементов массива;
  • записываем результат в файл.
pascal file text6. Дан текстовый файл. Удалить из него все пустые строки.

* Из задачника М. Э. Абрамян (Text16)

А теперь вернемся к олимпиадному заданию по Паскалю, частично решенному на одном из предыдущих заданиях:

p.in p.out
3
hello earth
khoor hduwk

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,'z:\p.in'); Assign(F_out,'z:\p.out'); Reset(F_in); Rewrite(F_out); s1:=''; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(s[i]); if n<>32 then n:=n+3; if . then . ; if . then . ; if . then . ; a:=chr(. ); s1:=. ; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,'z:\p.in'); Assign(F_out,'z:\p.out'); Reset(F_in); Rewrite(F_out); s1:=''; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(. ); if n<>32 then n:=n+3; if n=123 then n:=97; if n=124 then n:=98; if n=125 then n:=99; a:=chr(n); s1:=s1+a; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

полное решение var s, s1: string; i, j, a, n, k, b: integer; begin n := 97; s1 := ''; readln(s); readln(k); for i := 1 to length(s) do begin if s[i] <> ' ' then begin a := ord(s[i]); if a > 122 - k then for j :=123 - k to 122 do begin b:=122-j; if a = j then begin a := n+k-b-1; inc(n); end; end else a := a + k; s1 := s1 + chr(a) end else s1 := s1 + ' ' end; writeln(s1)end. --> pascal file text7. Пять делителей.
Имя входного файла: z3.in
Имя выходного файла: z3.out

Читайте также: