Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Nikakitten

Записать в первый файл учеников с ростом от 175 см, в другой — с избыточным весом

01.08.2012, 15:29. Показов 1390. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прога должна создавать файл, поместив в него данные о 100 учениках (фамилия, рост, вес) и записать 2 файла, в 1 - учеников с ростом от 175 см, в другой - с избыточным весом.
Но она создает файл, а обработать не может, так как сначала идет фамилия, а проге нужен рост для первой обработки. Можно ли как-то сделать, чтобы прога проскакивала фамилию? Заранее спасибо))

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Const FileName = 'Students.txt';
      N = 100;
Procedure CreateFile;
Var T, T1: Text;
    k: integer;
    S: String;
begin
Randomize;
Assign (T, FileName);    Assign (T1, 'Surnames.txt');
Reset (T1);    Rewrite (T);
WriteLn (T, 'Фамилия.          Рост(см).         Вес(кг).');
WriteLn (T);
for k:=1 to N do begin
                 ReadLn (T1, S);
                 While Length (S) < 12 do S:=S + ' ';
                 WriteLn (T, S, (Random(10) + 13)*10 : 10, (Random(10) + 3)*10 : 19);
                 end;   
Close (T);    Close (T1);                    
end;
Procedure HandleFile1;
Var r: integer;
    S: string;
    T, T1: Text;
begin
Assign (T, FileName);    Assign (T1, 'Basketball.txt');
Reset (T);    Rewrite (T1);
WriteLn (T1, 'Кандидаты для занятий баскетболом');
While not Eof (T) do begin
                     Read (T, S);
                     ReadLn (T, r);
                     if r >= 175 then WriteLn (T1, S);
                     end;
Close (T);    Close (T1);
end;
Procedure HandleFile2;
Var r, d: integer;
    S: string;
    T, T1: Text;
begin
Assign (T, FileName);    Assign (T1, 'Overweight.txt');
Reset (T);    Rewrite (T1);
WriteLn (T1, 'Ученики с избыточным весом');
While not Eof (T) do begin
                     if Eoln (T) then ReadLn (T);
                     Read (T, S);
                     Read (T, r);
                     Read (T, d);
                     if (r - d) < 100 then WriteLn (T1, S);
                     end;
Close (T);    Close (T1);
end;}
Begin
CreateFile;
HandleFile1;
HandleFile2;
End.
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2012, 15:29
Ответы с готовыми решениями:

Дан вес и рост учеников. Выведите на экран фамилии учеников, которые ниже 160см и весом меньше 60кг
Подскажите как можно решить данную задачу: Дан вес и рост учеников. Выведите на экран фамилии...

Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл
Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл помогите в...

Файл: Записать в файл сведения о пассажирах, багаж которых состоит из одной вещи весом менее 30 кг.
Постановка задачи Для решения задачи необходимо написать две отдельных программы. Первая должна...

3
Фрилансер
 Аватар для CodeR
3418 / 2815 / 3000
Регистрация: 08.02.2012
Сообщений: 8,603
Записей в блоге: 1
01.08.2012, 15:44
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Чтобы проскакивала считываешь строку из файла
Pascal
1
2
3
4
readln(f,s);
Delete(s,1,Pos(' ',s));{Удаляем все что есть в строке до первого пробела}
s1:=Copy(s,1,Pos(' ',s)-1);{Потом в строку s1 копируем всё что осталось до пробела}
Val(s1,n,k);{строку s1 переводим в число n для сравнения дальнейшего}
В файле данные должны быть так Фамилия Рост Вес т.е через один пробел
А лучше надо было использовать типизированный файл...
Pascal
1
2
3
4
5
6
Type Std=Record
 Fam:string[15];
 Rost:byte;
 Ves:byte;  
End;
Var f,g,h:file of std;
Добавлено через 10 минут
А для веса надо сделать так...
Pascal
1
2
3
4
readln(f,s);
Delete(s,1,Pos(' ',s));{Удаляем все что есть в строке до первого пробела}
Delete(s,1,Pos(' ',s));{2 раз применяем чтобы добраться до веса Удаляем все что есть в строке до первого пробела}
Val(s,n,k);{строку s переводим в число n для сравнения дальнейшего}
1
Nikakitten
01.08.2012, 17:27
Спасибо, но не очень поняла, как использовать ваши фрагменты:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Procedure HandleFile1;
Var r, ValErr: integer;
    S, S1: string;
    T, T1: Text;
begin
Assign (T, FileName);    Assign (T1, 'Basketball.txt');
Reset (T);    Rewrite (T1);
WriteLn (T1, 'Кандидаты для занятий баскетболом');
While not Eof (T) do begin
                     ReadLn (T, S);
                     Delete(S, 1, Pos(' ',S));
                     S1:= Copy(S, 1, Pos(' ',S)-1);
                     Val(S1, r, ValErr);
                     if r >= 175 then WriteLn (T1, S);
                     end;
Close (T);    Close (T1);
end;
Программа выдает два столбца: рост учеников выше 175 и их же вес, а по заданию нужно рост и фамилию. Можно ли не удалять все в строке до 1 пробела, а записывать в переменную?
Фрилансер
 Аватар для CodeR
3418 / 2815 / 3000
Регистрация: 08.02.2012
Сообщений: 8,603
Записей в блоге: 1
01.08.2012, 17:51
можешь тогда сделать копию строки
Pascal
1
t:=s;
затем при выводе сделать так
Pascal
1
writeln('Фамилия: ',Copy(t,1,Pos(' ',t)-1),' Рост: ',n);
с весом аналогично...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2012, 17:51
Помогаю со студенческими работами здесь

Переписать в другой файл строки файла в соответствии с ростом их длин
Условие: Дан текстовый файл. Переписать в другой файл его строки в соответствии с ростом их длин....

Создать структуру из двух строковых полей. Записать в файл n компонент типа этой структуры. В другой файл записать строк
Бинарные файлы. Создать структуру из двух строковых полей. Записать в файл n компонент типа этой...

Из массива учеников выбрать ученика с наибольшим ростом
Создайте массив, содержащий сведения об учениках класса (фамилия, рост, вес, средний балл). Найдите...

Sqrt() сам округляет числа ¯\_(ツ)_/¯
Собственно, сделал подобие калькулятора и в ходе теста обнаружил, что при извлечении корня из...

Используя комбинацию CAR и CDR, выбрать из списка ((HEIGHT 72) (WEIGHT 175) (HAIR BLOND)) элемент 175 2
Доброе утро. Помогите с решением вот такой вот задачи 1. Используя комбинацию CAR и CDR, выбрать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru