Буквенно-числовые строки
Пройти тестирование по этим заданиям
Вернуться к каталогу заданий
Версия для печати и копирования в MS Word
На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.
Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате:
<Компания> <Улица> <Марка> <Цена>
где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. <Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом. Пример входной строки:
Синойл Цветочная 95 2250
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.
Пример выходных данных:
12 1 0
На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.
Напишите эффективную по времени работы и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате:
<Компания> <Улица> <Марка> <Цена> где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов, <Улица> – строка, состоящая не более, чем из 20 символов без пробелов, <Марка> – одно из чисел – 92, 95 или 98, <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. <Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом. Пример входной строки: Синойл Цветочная 95 2250 Программа должна выводить через пробел 3 числа — количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.
На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.
Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет определять для бензина с маркировкой 92, на какой АЗС его продают по второй по минимальности цене (считается, что самой низкой цене потребители не доверяют), а если таких АЗС несколько, то выдается только количество таких АЗС. Если все АЗС, у которых 92-й бензин есть, продают его по одной и той же цене, то эта цена считается искомой и выдается либо число таких АЗС, когда их несколько, либо конкретная АЗС, если она одна. Гарантируется, что хотя бы одна АЗС 92-й бензин продает.
На вход программе сначала подается число данных о стоимости бензина N. В каждой из сле¬дующих N строк находится информация в следующем формате:
<Компания> <Улица> <Марка> <Цена>
где <Компания> — строка, состоящая не более чем из 20 символов без пробелов,
<Улица> — строка, состоящая не более чем из 20 символов без пробелов,
<Марка> — одно из чисел — 92, 95 или 98,
<Цена> — целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.
<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом.
Пример входной строки:
СуперБенз Цветочная 92 1950
Программа должна выводить через пробел Компанию и Улицу искомой АЗС или их количество, если искомых вариантов несколько.
Пример выходных данных:
Бензинчик Перспективная
Второй вариант выходных данных:
4
На вход программе подается набор символов, заканчивающийся точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка, или считывать данные из файла). Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль.
Если требуемое число составить невозможно, то программа должна вывести на экран слово “NO”. А если возможно, то в первой строке следует вывести слово “YES”, а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы:
Do not 911 to 09 do.
В данном случае программа должна вывести
YES
91019
На вход программе подается набор символов, заканчивающийся точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка, или считывать данные из файла). Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль.
Если требуемое число составить невозможно, то программа должна вывести на экран слово «NO». А если возможно, то в первой строке следует вывести слово «YES», а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы:
Do not 911 to 09 do.
В данном случае программа должна вывести
YES
91019
Пройти тестирование по этим заданиям
C4 № 3102.
егэ по информатике.
Думаю один из этих способов решения будет менее объемный и затратный
var ar: array[0..9] of integer;
i,k,nr:integer;
s:string;
c:char;
begin
while c<>'.' do begin
read(c);
if c in ['0'..'9'] then begin
k:=ord(c)-ord('0');
ar[k]:=ar[k]+1;
end;
end;
for i:=9 downto 1 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then begin
nr:=1; insert(inttostr(i),s,9-i);end;
if nr=1 then begin writeln('YES'); write(s);
if ar[0]>0 then write('0'); end
else writeln('NO');
end.
или
var ar: array[0..9] of integer;
i,k,nr:integer;
c:char;
begin
while c<>'.' do begin
read(c); if c in ['0'..'9'] then begin
k:=ord(c)-ord('0'); ar[k]:=ar[k]+1;
end;end;
for i:=9 downto 1 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then nr:=1;
if nr=1 then writeln('YES') else writeln('NO');
for i:=9 downto 1 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then write(i);
if (ar[0]>0)and(nr=1) then write('0');
for i:=1 to 9 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then write(i);
end.
bainy58 (tomsk) 04.06.2013 21:40:
var ar: array[0..9] of integer;
i,k,nr:integer;
c:char;
begin
while c<>'.' do begin
read(c); if c in ['0'..'9'] then begin
k:=ord(c)-ord('0'); ar[k]:=ar[k]+1;
end;end;
for i:=9 downto 1 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then nr:=1;
if nr=1 then writeln('YES') else writeln('NO');
for i:=9 downto 1 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then write(i);
if (ar[0]>0)and(nr=1) then write('0');
for i:=1 to 9 do
if (ar[i] mod 2 = 0)and(ar[i]<>0) then write(i);
end.
ошибка вот здесь if (ar[i] mod 2 = 0)and(ar[i]<>0) then nr:=1;
Допустим если в числе есть хоть одно число встречающиеся чётноё кол во раз. Отвтет в любом случае будет Yes без разницы можно ли составить полиндром или нет. пример
вводной строки
9849
.
выход программы
YES
99