Находка для тех, чьи девушки и супруги работают в сфере услуг: маникюр, брови, ресницы и так далее...
🤔 Вы же наверняка задумывались, как помочь своей половинке зарабатывать больше? Но что делать, если во всех этих маркетингах и процедурах не разбираешься от слова «совсем»?
Мы нашли выход — это сервис VisitTime
Чат-бот для мастеров и специалистов, который упрощает ведение записей:
— Сам записывает клиентов и напоминает им о визите
— Персонализирует скидки, чаевые, кешбек и предоплаты
— Увеличивает доходимость и помогает больше зарабатывать
А еще там первый месяц бесплатно, поэтому лучшее, что вы можете сделать сейчас — установить или показать его своей принцессе
Всё интуитивно понятно и просто, достаточно нажать на этот текст и запустить чат-бота
const N=10; var a:array[1..N,1..N] of integer; // Для подсчета поездок между станц. p,n1,n2,i,z:integer; c:char; s:string; // Для пропуска при чтении Имени и Фамилии. begin readln(n1,p); // Считываем условные N и P. n1:=0; // Так как нам важен только "P" обнуляем n1. for i:=1 to p do begin s:=''; repeat read(c); if c=' ' then begin s:=s+c; end; until s=' '; // Читать до двух пробелов в "s" . readln(n1,n2); // Считываем номер станции отъезда и приезда . inc(a[n1,n2]); // Увеличиваем на 1 каждую поездку между станциями . end;
for i:=1 to N do // проход по массиву в поисках максимума begin for z:=2 to N do begin if a[i,z]>a[i,z-1] then begin n1:=a[i,z]; end; // Запоминаем количество поездок . end; end;
for i:=1 to N do // Проход по массиву одинаковых элементов begin for z:=1 to N do begin if a[i,z]=n1 then begin writeln(i,'-',z); end; // Вывод станций с максимумом пассаж. end; end; end.
Итак, по поводу задачи с днями недели: в принципе нормально, но дадут 3 балла, т.к. нерационально используется цикл for. Если все дни будут только в январе, этот цикл будет все равно проходить по всем месяцам... BKirill, вы зря скептически относитесь к циклу while. Он позволяет остановиться на встретившемся месяце и не перебирать весь оставшийся массив. Задачи, которые вы решаете, все от МИОО, поэтому там есть и критерии с решениями, проанализируйте в этой задаче приведенный алгоритм, он вполне даже элегантный)) Теперь по поводу последней задачи.... Намешали, скажу я вам... Даже по приведенному примеру исходных данных ваша программа работает неправильно. Если даже берете двумерный массив, то работаете с ним вообще непонятно как. По вашему алгоритму получается, что в матрице 10х10 будут стоять единички (я использую пример исходных данных) в первой строке во 2-ом и 5-ом столбцах, и в 3 строке, 5 столбце. Естетсвенно, что 1 будет максимумом, и потом выводится номер строки, где есть максимум и соответствующий номер столбца. Задача решается неверно... И еще, не надо обнулять n1, это позволяет уменьшить время выполнения программы. В вашем случае матрица будет не 10х10, а 5х5. Пробуйте еще))) И не забывайте свой алгоритм прогонять вручную, тогда можно избежать многих ошибок)))
Алексей и Борис учатся в первом классе. Для изучения арифметики у каждого из них есть набор из нескольких карточек, на каждой из которых написана одна из десяти возможных цифр (от «0» до «9»). Сейчас они начали изучать многозначные числа, и каждый составил из своих карточек максимально возможное число. Теперь они хотят узнать, кто из них составил большее число. Цифры в наборах у мальчиков могут повторяться, некоторые цифры могут вообще отсутствовать, но известно, что в каждом наборе есть хотя бы одна ненулевая цифра. Напишите эффективную, в том числе и по используемой памяти программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая по наборам цифр, записанных на карточках каждого школьника, определяет, кто из школьников сможет составить большее число. На вход программе подается две строки. Каждая строка содержит последовательность цифр и завершается точкой. Длина каждой строки может быть произвольной. В первой строке записаны цифры, которые встречаются на карточках Алексея, вторая строка содержит цифры на карточках Бориса. Цифры заданы в произвольном порядке. Пример входных данных: 190. 129. Выведите имя мальчика («Алексей» или «Борис»), который сможет составить наибольшее число из своих карточек. Если максимальные числа, которые смогут составить оба школьника, равны, то выведите слово «Ничья». В данном примере максимальное число, которое сможет составить Алексей равно 910, а Борис может составить число 921, поэтому программа должна вывести слово «Борис». В программе на языке бейсик (при необходимости, и на других языках) символы можно вводить по одному в строке, пока не будет введена точка, или читать данные из файла.
Решение (Visual c++):
Code
#include <stdio.h>
int main () { int i; char temp='0'; int a[10], b[10]; int l1=0,l2=0; bool draw;
for (i=0;i<10;i++) a[i]=b[i]=0;
while (1) { temp=getchar(); if (temp=='.') break; a[temp-48]++; l1++; }
getchar();
while (1) { temp=getchar(); if (temp=='.') break; b[temp-48]++; l1++; }
if (l1>l2) printf ("Алексей"); else if (l1<l2) printf ("Борис"); else { for (i=9;i>=0;i--) { if (a[i]>b[i]) {printf ("Aлексей"); draw=0; break;} else if (a[i]<b[i]) {printf ("Борис"); draw=0; break;} else draw=1; } }
gezczu, мы в школе изучали Pacsal, причём в 11 классе. Также я немного подучил Паскаль, когда готовиля к районной олимпиаде по программированию... Но так как я с 9-го класса начал ходить на курсы по программированию в универ и там мы учили c++, то Паскаль я так и не запомнил...
konst@ntin, у тебя явная описка в программе: в обоих циклах увеличивается переменная i1, а надо сначала i1, потом i2. и еще: ведь temp это символьная переменная, так? как же отнее можно число 48 отнимать в чистом виде? критикуешь - предлагай, предлагаешь - делай
Вас в школе на инфе чему-нибудь учат или вы сами выучили язык?
Нас вот в школе паскалю учили нормально только в 8 классе, когда были самые основы. Потом пришлось идти на курсы. Правда, все равно только С1-С2 научилась делать, с алгоритмизацией проблемы(( Сказали мне, что эта дорога меня приведет к океану смерти, и я с полпути повернул обратно. С тех пор всё тянутся передо мною кривые глухие окольные тропы...
Итак, по поводу задачи с днями недели: в принципе нормально, но дадут 3 балла, т.к. нерационально используется цикл for. Если все дни будут только в январе, этот цикл будет все равно проходить по всем месяцам... BKirill, вы зря скептически относитесь к циклу while. Он позволяет остановиться на встретившемся месяце и не перебирать весь оставшийся массив. Задачи, которые вы решаете, все от МИОО, поэтому там есть и критерии с решениями, проанализируйте в этой задаче приведенный алгоритм, он вполне даже элегантный))
Я к сожалению привык что входные данные не упорядоченны поэтому сразу отбросил идею с while . Насчет второй задачи , по-моему я вообще не понимаю что от меня хотят там. насчет того что использовалась матрица 10x10 , это лучше наверное чем использовать setlength в связке с динамическим массивом.. ибо вдруг что нибудь стукнет в голову проверяющему мол "выпендриваюсь" и сразу минус 1 балл.
Добавлено (2011-05-23, 4:22 Am) --------------------------------------------- konst@ntin хоть я си и не учил но за break в паскале могут скинуть балл . по остальному сказать не могу ничего.
Сообщение отредактировал BKirill - Понедельник, 2011-05-23, 5:28 AM
konst@ntin, VingardiumLeviossa, спасибо за ответы Вам очень повезло, что вас в школе хоть чему-то учили. Ведь основы заложить - это главное Мехмат МГУ 1 курс
konst@ntin, VingardiumLeviossa, спасибо за ответы smile Вам очень повезло, что вас в школе хоть чему-то учили. Ведь основы заложить - это главное
мне нет , никто никогда не учил и не собирается учить в школе , всем плевать. зато over 9k заряда ненависти + google + месяц прогула школы + помощь uchu_inf с B10 и C4 и часть A с B идет идеально практически за 50-60 минут . C1/C2/C3 проблем нет кроме C3 , никак не приучу себя к аккуратности в записях ,а это потеря времени на экзамене . C4 пытаюсь как видите , вроде что то получается..
Сообщение отредактировал BKirill - Понедельник, 2011-05-23, 6:40 AM
BKirill, ты не один такой)) У нас даже уроки не проводят. Только как-то научили переводить числа из одной СС в другую странным способом. И на этом инфа завершилась А и В более менее решаю. Из С только С3 пока что. Все остальное для меня вообще тяжело, т.к. язык программирования не знаю почти. Но за год еще успею выучить
Quote (BKirill)
никто никогда не учил и не собирается учить в школе , всем плевать.
Похоже, только в физ-мат классах чему-то учат Мехмат МГУ 1 курс
Новое задание. В отличии от представленных вариантов ответов придумал иной алготим: Реализовано на идее о представлении даты в виде числа где год условный первый разряд , месяц второй , день третий разряд . В итоге сравнивая , мы будем получать нужную нам информацию. PS Пригодилась ваша мысль о сравнивании строк.
Мне понравилось твое решение, правда на экзамене я бы так наверно не додумался)) Я сделал вот так: http://s1.ipicture.ru/uploads/20110523/5gWSfBdT.gif
Code
var name,s: string; {name - имя самого старого человека} y_max,y,m,m_max,d,d_max: integer; c,d1,d2,m1,m2: char; count,n,i: integer; begin readln(n); y_max:=2101; for i:=1 to n do begin s:=''; repeat read(c); s:=s+c; until c=' '; {Считана фамилия} repeat read(c); s:=s+c; until c=' '; {Считано имя} read(d1,d2,m1,m1,m2,c,y); {Читаем дату} d:=(ord(d1)-ord('0'))*10+(ord(d2)-ord('0')); {Переводим в число день} m:=(ord(m1)-ord('0'))*10+(ord(m2)-ord('0')); {Переводим в число месяц} if y<y_max then begin y_max:=y; d_max:=d; m_max:=m; name:=s; count:=1; end else if y=y_max then begin if m<m_max then begin d_max:=d; m_max:=m; name:=s; count:=1; end else if m=m_max then begin if d<d_max then begin d_max:=d; name:=s; count:=1; end else if d=d_max then count:=count+1; end; end; end; if count=1 then writeln(name) else writeln(count); readln; end.
Кто знает сколько баллов могут дать за такое решение???
Информатика - 92 Русский язык - 90 Математика - ~73 Физика - не писал есче
Сообщение отредактировал joooohnny - Понедельник, 2011-05-23, 1:18 PM
Если ее работоспособность 100% и нет синтаксических ошибок и адекватный алгоритм , как они пишут - 10 раз не повторялись if else / case of и не запоминаются все строки то все 4 балла. Но в этой задаче они бы разрешили ибо я и сам бы не додумался до своего варианта , дома есть время и придумать что то эдакое не вопрос.. Пока могу посоветовать в общем не использовать два repeat а делать через предохранитель как у меня см (pred) ибо очень удобно + посмотрел твой вариант считывания даты ,тоже интересно ибо можно будет где нибудь его еще использовать .
duzka, по поводу l1 и l2 действительно описался при наборе текста программы. А вот от символьной переменной temp можно отнимать 48 - меня так учили на курсах. 48 - номер символа "0" в ASCII, следовательно, когда мы вычитаем из номера символа (в данном случае у нас только цифры), то мы получаем саму цифру.