С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 3

Кобыланды батыр

25.03.2016, 09:05. Показов 1160. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Враги Кобыланды батыра угнали его коня – Тайбурыл. На третий день он выяснил, что его коня заперли в высокой каменной крепости у которого есть каменный дверь с кодовым замком. На двери четверостишие в алфавите латыни из «input.txt», которая обновляется каждые четыре секунды. На двери надпись – «Кто успеет посчитать количество букв «k» в последнем слове каждой строчки и ввести в соответствуюшие ячейки замка тот заберет Тайбурыл». Помогите Кобыланды батыру вернуть себе коня.
Формат входных данных:
Четверостишие. (количество символов в строке не больше 102)
Формат выходных данных:
Сумма чисел букв «k» в последнем слове каждой строки.
Тест

Input.txtoutput.txt
Kүn tүsіrmei kөzіne,
Zhel tigіzbe өzіne,
Үstіne shatyr tіkkіzdі,
Ne keregіn zhetkіzdі.
4
0
Лучшие ответы (1)
44 / 44 / 66
Регистрация: 22.07.2015
Сообщений: 191
25.03.2016, 09:22
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  s: string;
  k, i, j: integer;
begin
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
  for i := 1 to 4 do begin
    readln(s);
    while pos(' ', s) > 0 do 
      delete(s, 1, pos(' ', s));
    for j := 1 to length(s) do
      if s[j] = 'k' then inc(k);
  end;
  write(k);
end.
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,305
25.03.2016, 13:34
a1d4r, у Вас нет записи в выходной файл. Нет закрытия файла, открытого для записи (можно не закрывать только файл, открытый для чтения). И, в общем-то, незачем удалять часть строки, достаточно сканировать её с конца.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var s: string;
    k, i: integer;
    f: text;
begin
  assign(f, 'input.txt');
  reset(f);
  k := 0;
  while not eof(f) do {или for j := 1 to 4 do}
    begin
      readln(s);
      for i := length(s) downto 1 do
        if s[i] = 'k'
          then inc(k)
          else if s[i] = ' '
            then break
    end;
  close(f);
  assign(f, 'output.txt');
  rewrite(f);
  write(f, k);
  close(f)
end.
Добавлено через 18 минут
Может быть,
Pascal
12
        if s[i] in ['k', 'K']
мало ли, вдруг последнее слово строки - чьё-то имя, например, того же Кобыланды.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.03.2016, 17:57
Лучший ответ Сообщение было отмечено Cyborg Drone как решение

Решение

Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Нет закрытия файла, открытого для записи (можно не закрывать только файл, открытый для чтения).
К слову сказать, для переменных input/output утверждение об отсутствии закрытия файла может быть не совсем верным.

Например, возьмём TP/BP 7.0, точнее исходный код модуля System, в файле DAPP.ASM увидим следующее:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
 
; Runtime library exit procedure. This is the last exit procedure to
; get executed when an application terminates.
 
ExitTurbo:
 
    MOV AX,OFFSET Input     ;Close Input file
    PUSH    DS
    PUSH    AX
    PUSH    CS
    CALL    CloseText
    MOV AX,OFFSET Output    ;Close Output file
    PUSH    DS
    PUSH    AX
    PUSH    CS
    CALL    CloseText
...
То есть, библиотека времени исполнения Turbo/Borland Pascal перед завершением программы файлы, связанные с файловыми переменными Input и Output, закрывает самостоятельно.

FPC на первый взгляд связанные с переменными Input/Output файлы для консольной программы не закрывает, но тут нужно посмотреть повнимательнее ввиду разнообразия поддерживаемых ОС, некоторые из которых закрывают файлы по завершении процесса самостоятельно (а вот сбрасывают ли буфера -- вопрос отдельный, тоже с ходу сказать не готов).

Так что действительно, в универсальном разделе самостоятельно переоткрытые Input/Output стоит закрывать явным вызовом Close, польза от этого возможна, а вреда никакого.
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
25.03.2016, 18:18
Есть еще момент, при закрытии файла через close в него записывается содержимое буфера записи , есть опыт, когда терялась часть данных.
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,305
25.03.2016, 18:50
capricornus CF, собственно, и я, и bormant, как раз об этом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru