Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
PascalABC.NET Олимпиадная задача по программированию. PascalABC.NET. Задача С. Считалка Ирочка попросила маму придумать новую считалочку. Мама тут же ей "выдала". Пусть в кругу N человек. Это число N будем изменять следующим образом: если число четное, то разделим его на 2, если... https://www.cyberforum.ru/ pascalabc-net/ thread2567526.html Проблема с real PascalABC.NET
В чём проблема? program atlas2; var d, n, x, a,b:real; begin writeln('Введите n, d'); readln(n,d); x:=(sqr(n+d)/0.75); if x<1 or x>=5
PascalABC.NET Массивы https://www.cyberforum.ru/ pascalabc-net/ thread2567475.html
Как Ссылка удалена. сделать?
PascalABC.NET Вычислить сумму ряда. https://www.cyberforum.ru/ pascalabc-net/ thread2567453.html
не понимаю что делать с Ссылка удалена.помогите пожалуйста решить
Бинарные деревья PascalABC.NET
Создать бинарное дерево. Определить, содержит ли оно заданное значение. Помогите с кодом
PascalABC.NET "Exec()" не работает Запускаю программу с помощьюexec() а она запускается (появляется окошко) и сразу закрывается. Код запускаемой программы: var nn := 5; steps := 10; begin var (Field, Field1) := (new... https://www.cyberforum.ru/ pascalabc-net/ thread2567372.html
PascalABC.NET Где разместить данные? https://www.cyberforum.ru/ pascalabc-net/ thread2567353.html
Подскажите, где в интернете можно разместить какой-либо файл или информацию, что бы её всегда можно было достать программкой на паскале?
Создание установщика PascalABC.NET
Как можно сделать установщик, извлекающий из себя в папки файлы?
PascalABC.NET Перевести код с с++ на Pascal.abc.net Ребят , тема такая. Я учусь в 9 классе и уже несколько знаю с++( да, да, в 9 и с++, также с-фундамент). И я хочу стать программистом.Но у меня проблема - проетная деятельность, И поскольку в школе мы... https://www.cyberforum.ru/ pascalabc-net/ thread2567304.html PascalABC.NET Эмуляция нажатия клавиш на клавиатуре в PascalABC.NET https://www.cyberforum.ru/ pascalabc-net/ thread2567303.html
Можете написать программу ,которая будут нажимать на Space (Пробел) с некоторым промежутком. Мне это надо для выполнение задания в игре Hyper Light Drifter. В задание нужно сделать серию рывков...
PascalABC.NET Вычисление рабочих дней между датами
Нужно написать программу для определения количества рабочих дней между двумя датами (не используя TDate и TCalendar)
PascalABC.NET ABCNET или кроссплатформенный PABCSystem https://www.cyberforum.ru/ pascalabc-net/ thread2566689.html
ABCNET - проект, призванный распространить PABCSystem-подобный функционал на весь NET и обеспечить пользователей PascalABC.NET данным функционалом за пределами данного языка. Минимальные...
2 / 2 / 0
Регистрация: 05.06.2019
Сообщений: 82
0

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами - PascalABC.NET - Ответ 14160790

09.01.2020, 20:23. Показов 4645. Ответов 2
Метки (Все метки)

Когда пользователь работает в операционной системе Winux, у него часто запущено несколько приложений. Каждое из приложений работает в отдельном окне. Для переключения между окнами используется комбинация клавиш «Alt+Таb». Эта комбинация делает активным окно, в котором пользователь работал перед тем, как перейти в текущее активное окно.
Чтобы переключиться в другое окно, можно нажать клавишу «Ак» и затем, не отпуская ее, несколько раз нажать клавишу «Таb». Чтобы понять, какое окно станет активным после этого, воспользуемся следующей моделью. Пусть запущено п приложений. Приложения в операционной системе организованы в виде списка и упорядочены по убыванию времени последней активности. То есть приложение, окно которого является активным в настоящий момент — первое в списке, приложение, окно которого было активно перед этим — второе, и т. д.
Если нажать клавишу «Alt» и затем, не отпуская ее, нажать клавишу «Таb» к раз, то активным станет окно приложения, которое находится на (k mod n) + 1-м месте в списке. Здесь а mod b означает остаток от деления а на b. Иными словами, операционная система рассматривает список как циклический, переходя после последнего элемента списка к первому.
При запуске нового приложения оно добавляется в начало списка.
Задана последовательность действий пользователя, где каждое действие — либо запуск приложения, либо переключение между окнами. Выведите в выходной файл, в каком порядке пользователь работал с приложениями.


Входные данные:
Первая cтpoкa входного файла содержит целое число п — количество действий пользователя (1 <= n <= 1000). Следующие n строк содержат описание действий пользователя. Запуск приложения описывается строкой «Run ». Здесь «<имя приложения>» — строка из не более чем 100 латинских букв, цифр И пробелов. Она отделена от слова «Run» ровно одним пробелом. Все имена приложений различны,. Большие и маленькие буквы считаются различными.
Переключение между приложениями описывается строкой «Alt+Tab+...+Таb», здесь подстрока «+Таb» повторена в точности столько раз, сколько раз пользователь нажал клавишу «Таb», не отпуская клавишу «Alt». Это количество не превышает 100. Первая команда во входном файле — всегда команда «Run».

Выходные данные:
Выведите n строк — последовательность имен приложений, с которыми работал пользователь в порядке, в котором их окна становились активными.


Пример
Входные данные:
6
Run Mozilia Firefox
Run Free Pascal
Alt+Tab
Run Miranda IM
Alt+Tab+Tab
Alt+Tab+Tab+Tab

Выходные данные:
Mozilia Firefox
Free Pascal
Mozilia Firefox
Miranda IM
Free Pascal
Free Pascal


Подскажите, пожалуйста, правильно ли я написал программу?
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
57
58
59
60
61
62
63
64
var
  n, i: integer;
  s: string;
  apps: array of string[100];
  F_in, F_out: textfile;
 
procedure sor(index: integer);
var
  j: integer;
  a: array of string[100];
  
begin
  var sm: integer = apps.Length - index;
  
  SetLength(a, apps.Length);
  for j := 0 to apps.Length - 1 do
    a[j] := apps[j];
  
  for j := 0 to apps.Length - 1 do
  begin
    apps[j] := a[(j + sm) mod (apps.Length - 1)];
  end;
  writeln(a);    
end;
 
function count_plus: integer;
begin
  for var j := 1 to Length(s) do
    if s[j] = '+' Then
      count_plus += 1; 
end;
 
begin
  Assign(F_in, 'input1.txt');
  Assign(F_out, 'output1.txt');
  
  Reset(F_in);
  Rewrite(F_out);
  
  readln(F_in, n);
  for i := 0 to n - 1 do
  begin
    readln(F_in, s);
    if Pos('Run ', s) <> 0 Then
    begin
      SetLength(apps, length(apps) + 1);
      apps[length(apps) - 1] := Copy(s, 5, length(s) - 4); //получение строки
      if length(apps) > 1 Then
        sor(length(apps) - 1)
      else
        writeln(F_out, apps[length(apps) - 1]);
    end
    else
    begin
      if Pos('Alt', s) <> 0 Then
      begin
        var index: integer = count_plus mod length(apps);
        sor(index);  
      end;
    end;
  end;
  CloseFile(F_in);
  CloseFile(F_out);
end.


Вернуться к обсуждению:
Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами PascalABC.NET
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2020, 20:23
Готовые ответы и решения:

Олимпиадная задача по программированию. PascalABC.NET. Задача С. Считалка
Ирочка попросила маму придумать новую считалочку. Мама тут же ей &quot;выдала&quot;. Пусть в кругу N...

Олимпиадная задача по программированию. PascalABC.NET
Здравствуйте, я готовлюсь к школьной олимпиаде по информатике, не могу решить задачу (85 баллов из...

Олимпиадная задача по программированию. PascalABC.NET
Вася с Петей и Колей заработали много денег. Чтобы не мучиться с дележкой, они решили, что сначала...

Олимпиадная задача по программированию. PascalABC.NET
Найти количество целых решений, удовлетворяющих неравенству: A ≤ B*x + C ≤ D. Формат ввода В...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2020, 20:23

Олимпиадная задача по программированию
Помогите написать программу для решения следующей задачи (из Всесибирской Открытой Олимпиады...

Олимпиадная задача по программированию: Таджикские имена
Отсортировать N слов по алфавиту. Разделить по группам те которые заканчиваются на &quot;хон&quot;,...

Олимпиадная задача по программированию.Ошибка в моем коде
Здравствуйте, буду краток, поэтому...задача: Узник пытается бежать из замка, который состоит из MN...

Переключение между окнами
Здравствуйте. Недавно начал изучать Qt. Создал 2 MainWindow окна (соответственно 2 ui файла и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru