Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6

Напишите программу, определяющую количество углов подставки, после обработки ее заботливым Мишей

15.10.2014, 16:15. Показов 3167. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорогие мои. Ситуация такая:недавно прошел школьный этап олимпиады по информатике. Я решила все задачи и, как выяснилось (благодаря тестовому, проверяющему автоматизированно, модулю, решила неправильно! А я уверена, что программы написаны верно! Помогите разобраться

Задача 1. "Заботливый Миша" (25 баллов)
Имя входного файла: a.in
Имя выходного файла: a.out
Ограничение времени 1 секунда на тест
Ограничение по памяти 256 Мб

Добрый мальчик Миша заботится о своей младшей сестренке Лере. Лерочка только начала ходить. Миша наклеил мягкие накладки на все углы мебели в доме, убрал острые предметы. Какой все-таки Миша молодец! Однажды Миша заметил, что сестренка любит играть с квадратной пластиковой подставкой под горячее. Лерочка может пораниться об углы – подумал Миша. Миша подумал и выполнил первый шаг обработки подставки: срезал каждый угол прямой линией. Подставка стала восьмиугольной. Углы, как показалось Мише, стали менее опасны для ребенка. На следующем шаге обработки подставки Миша вновь срезал каждый угол прямой линией. Подставка превратилась в шестнадцатиугольник. Напишите пожалуйста программу, определяющую количество углов подставки, после обработки ее заботливым Мишей.
Формат входных данных:
Первая строка входного файла содержит натуральное число Т– длину стороны подставки в миллиметрах. Вторая строка содержит натуральное число N – количество шагов обработки подставки. Т≤9000000000000000000. 2 ≤ N ≤ 80.

Формат выходных данных:
В выходной файл a.outвывести единственное целое число — ответ.


Пример файла с входными данными и файла с результатом:


a.in a.out
450
2 16

Добавлено через 4 минуты
Мое решение:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program lena;
var f,f1:text;
s,t:longint;
n,i:byte;
begin
assign(f,'a.in.txt');
reset(f);
assign(f1,'a.out.txt');
rewrite(f1);
readln(f,t);
readln(f,n);
s:=4;
for i:=1 to n do
s:=s*2;
writeln(f1,s);
close(f);
close(f1);
end.
Добавлено через 1 час 21 минуту
тестовая программы выдает такой протокол: Run-time error 2; Program terminated with non-zero exit code 2. Где я оступилась?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2014, 16:15
Ответы с готовыми решениями:

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

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

Напишите программу, определяющую количество нулей среди всех цифр числа n
Уважаемые программисты, помогите пожалуйста решить 3 задачи: 1.Дано натуральное число n. Напишите программу, определяющую количество...

20
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
15.10.2014, 18:53
Цитата Сообщение от kroshka_ali Посмотреть сообщение
Т≤9000000000000000000
А Вам не кажется что подобные числа не вмещаются в тип Longint?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
15.10.2014, 21:35
Лучший ответ Сообщение было отмечено kroshka_ali как решение

Решение

Цитата Сообщение от kroshka_ali Посмотреть сообщение
Run-time error 2; Program terminated with non-zero exit code 2. Где я оступилась?
Вот здесь:
Цитата Сообщение от kroshka_ali Посмотреть сообщение
Имя входного файла: a.in
Имя выходного файла: a.out
Цитата Сообщение от kroshka_ali Посмотреть сообщение
assign(f,'a.in.txt');
assign(f1,'a.out.txt');

Разница между a.in и a.in.txt, а также между a.out и a.out.txt, полагаю, очевидна?

Добавлено через 13 минут
Puporev, kroshka_ali,
так T тут вообще не нужно никаким боком, только создаёт ложное впечатление, что результат в Int64 может влезть. А на самом-то деле, максимум -- это 4^80, или 2^81, а такое ни в Int64, ни в QWord не влезет.
Следовательно, для n<=62 достаточно QWord, а для n>62 потребуется длинная арифметика для умножения на 2.
2
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
15.10.2014, 21:41
Тьфу, я T и N попутал...
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
15.10.2014, 22:29
Я б сделал так:
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
var
  n, i, j, c: Integer;
  s: QWord;
  q: String[25];
begin
  Assign(input,'a.in'); Reset(input);
  Assign(output,'a.out'); Rewrite(output);
  ReadLn; ReadLn(n);
  s:=4;
  if n>61 then begin
    Str(QWord(-1),q); Inc(q[Length(q)]);
    for i:=1 to Length(q) do Dec(q[i],Ord('0'));
    for j:=63 to n do begin
      c:=0;
      for i:=Length(q) downto 1 do begin
        q[i]:=Chr(Byte(q[i])*2+c);
        if Byte(q[i])>9 then begin
          Dec(q[i],10); c:=1;
        end else c:=0;
      end;
      if c>0 then Insert(#1,q,1);
    end;
    for i:=1 to Length(q) do Inc(q[i],Ord('0'));
    WriteLn(q);
  end else begin
    for j:=1 to n do s:=s*2;
    WriteLn(s);
  end;
end.
Добавлено через 6 минут
Для n<=80 достаточно String[25], поправил.
1
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6
21.10.2014, 09:35  [ТС]
Разница между a.in и a.in.txt, а также между a.out и a.out.txt, полагаю, очевидна?


разница не совсем очевидна, не могли бы, простите, пояснить.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.10.2014, 09:51
У файла пишется имя, точка, расширение.
Т.е либо a.in и a.out
либо in.txt и out.txt
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
21.10.2014, 09:56
Цитата Сообщение от kroshka_ali Посмотреть сообщение
не могли бы, простите, пояснить
"a.in.txt" и "a.out.txt" на 4 символа (вот на эти - ".txt") длиннее, чем соответственно "a.in" и "a.out". Не нужно добавлять ".txt" к тому, что написано в условии.
0
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6
23.10.2014, 12:55  [ТС]
ну когда я убираю расширение txt программа не работает

Добавлено через 2 минуты
Какие же файлы должны быть тогда считываемыми, а какие для сохранения результатов? как создать в исходной папке файлы a.in и a.out? В какой программе их создавать?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.10.2014, 13:12
Создайте в папке с программой текстовый файл в Блокноте, назовите его a и расширение присвойте .in
Будет файл с синенькой иконкой a.in
файл a.out создастся сам там же по окончании программы.

Добавлено через 6 минут
Чтение из файла a.in
Pascal
1
2
3
4
5
assign(f,'a.in');
reset(f);
read(f,T);
read(f,N);
close(f);
Запись в файл a.out
Pascal
1
2
3
4
assign(f,'a.out');
rewrite(f);
write(f,s);
close(f);
0
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6
23.10.2014, 16:09  [ТС]
Вся проблема в том, что я это делала неоднократно, и поэтому пишу уже который раз вам нелепые вопросы... Ну не сохраняется у меня файлы с таким расширением в блокноте! что делать?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.10.2014, 16:15
Жму правой кнопкой мыши, выбираю создать текстовый документ. Появляется ярлык файла Текстовый документ.txt.
Жму на нем правой кнопкой мыши, выбираю Переименовать. Меняю имя на a.in
Открываю файл и пишу в него что нужно, сохраняю.
Вложения
Тип файла: rar a.rar (75 байт, 19 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.10.2014, 16:17
Вообще неумение обращаться с файлами никак не связано с программированием.
0
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6
23.10.2014, 17:45  [ТС]
спасибо за архив, буду его использовать, но не создается у меня такой файл, хоть переименовываю, хоть сохраняю с другим расширением, видимо что-то с системой...
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
23.10.2014, 20:05
kroshka_ali,
У вас операционная система Windows?
У вас программа где расположена? допустим в c:\prj
Win+R, notepad c:\prj\a.in

правите, сохраняете.
0
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 6
23.10.2014, 20:08  [ТС]
с компьютернойто все в порядке, это проблемы с моей личной)))... разобралась (поставила галочку в свойствах папки отображать расширение файлов))))
0
0 / 0 / 0
Регистрация: 11.11.2014
Сообщений: 2
11.11.2014, 13:07
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program m1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var n,i:longint;
t,s:comp;
begin
  Assign(Input,'a.in');
  Reset(Input);
  Assign(Output,'a.out');
  Rewrite(Output);
  Readln(t);
  Readln(n);
  s:=4;
  for i:=1 to n do
  s:=s*2;
  writeln(s:0:0);
  Close(Input);
  Close(Output);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
11.11.2014, 18:14
kilka,
ваша программа неправильно считает для n=48 и выше, от 61 и выше начинает падать с ошибкой. А по условию 2 ≤ N ≤ 80.

Добавлено через 6 минут
PS. В сообщении №5 строки 6, 7 должны были быть:
Pascal
1
2
  Assign(input,'a.in'); Reset(input);
  Assign(output,'a.out'); Rewrite(output);
Puporev, не могли бы вы поправить сей досадный результат копипаста, помноженного на невнимательность?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.11.2014, 18:20
Цитата Сообщение от bormant Посмотреть сообщение
PS. В сообщении №5 строки 6, 7 должны были быть:
Поправил
1
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 2
29.10.2015, 20:03
Pascal
1
2
3
4
5
6
7
8
9
10
var
 n,i:integer;t,x:int64;
 begin
 assign (input,'a.in'); reset (input);
 assign (output, 'a.out'); rewrite (output);
 readln( t, n);
 x:=4;
 for i:=1 to n do x:=x*2;
 write(x);
 end.
вот таким образом программа проходит 3 теста из пяти. не проходит вариант, когда n=75. нужен вывод 24хзначного числа. как это сделать? пробовал описать свой тип type bas=4..900000000000000000; но получается мало, больше система не даёт, выдаёт ошибку. научите, кто-нибудь, плиз.

Добавлено через 2 минуты
что за тип comp?

Добавлено через 49 секунд
? ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2015, 20:03
Помогаю со студенческими работами здесь

Составьте программу, определяющую, могут ли эти числа быть величинами углов параллеграмма, прямоугольника, трапеции ил произвольного четырехугольника
Даны значения четырех углов a, b, c, d в градусах. Составьте программу, определяющую, могут ли эти числа быть величинами углов...

Напишите функцию, определяющую количество дней в этом году
12. Дан номер года (положительное целое число). Напишите функцию, определяющую количество дней в этом году, учитывая, что обычный год...

Напишите программу, определяющую число слов в строке
Напишите программу, определяющую число слов в строке. Одно слово от другого отделяется одним пробелом. В конце предложения стоит точка. ...

Напишите программу определяющую частоту встречаемости символа в строке
Напишите программу определяющую частоту встречаемости символа в строке. Сообщите об отсутствии символа, если он не найден. Организуйте...

Напишите программу, определяющую сумму всех четных чисел от 2 до 50
2) Напишите программу,определяющую сумму всех четных чисел от 2 до 50


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
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 и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru