TiPo Опубликовано 18 ноября, 2012 Жалоба Опубликовано 18 ноября, 2012 Прошу помощи. Язык - Pascal. Заранее спасибо.Требуется подсчитать, сколько дней прошло с начала 2010 года до указанной даты в 2010 году.Входные данныеВводятся два числа, разделенных пробелом - число, месяц.Выходные данныеВывести одно число - количество дней.Примеры тестов:входные данные2 1выходные данные2входные данные31 12выходные данные365Вводится 5 чисел. Требуется записать их в обратном порядке, при этом переставив все цифры в каждом числе в обратном порядке.Входные данныеВводятся 5 натуральных чисел, меньших 1000. Числа разделены пробелом.Выходные данныеВывести полученную последовательность. Числа не должны содержать ведущих нулей (то есть не должны начинаться с нуля).Примеры тестов:входные данные1 2 3 4 5выходные данные5 4 3 2 1входные данные23 543 100 230 7выходные данные7 32 1 345 32Вводятся три цифры. Требуется составить из них наибольшее возможное четное число.Входные данныеВводятся три цифры, разделенные пробелом. Гарантируется, что хотя бы одна из них отлична от нуля и хотя бы одна цифра четная.Выходные данныеВывести одно трехзначное число (без пробелов). Число не может начинаться с нуля.Примеры тестоввходные данные2 4 3выходные данные432входные данные0 0 1выходные данные100
TiPo Опубликовано 19 ноября, 2012 Автор Жалоба Опубликовано 19 ноября, 2012 zakiЯ не учусь в универе. Я самостоятельно изучаю язык. Нашёл старые задачки. Что-то не совсем получается.Добавлено спустя 3 минуты 15 секунд:Ещё хочется посмотреть разные способы решения. Например вторую задачку если подумать, то можно решить не числовыми значениями, а строковыми. Но это не подходит ко всем вводимым числам.
zaki Опубликовано 19 ноября, 2012 Жалоба Опубликовано 19 ноября, 2012 zakiЯ не учусь в универе. Я самостоятельно изучаю язык. Нашёл старые задачки. Что-то не совсем получается.Добавлено спустя 3 минуты 15 секунд:Ещё хочется посмотреть разные способы решения. Например вторую задачку если подумать, то можно решить не числовыми значениями, а строковыми. Но это не подходит ко всем вводимым числам.Тогда молодец! Но почему мы за тебя должны изучать ЯП? Ладно ты бы спросил про какую то функцию или что там...Я сам пхп учу, часто прошу помочь. Но я не прошу реализовать всю задачу.
TiPo Опубликовано 19 ноября, 2012 Автор Жалоба Опубликовано 19 ноября, 2012 zakiЯ наверно неправильно сформулировал вопрос. Я прошу подсказать мне как наименее затратно решить эти задачи. Или функцию, процедуру подскажите пожалуйста.
NAT Опубликовано 19 ноября, 2012 Жалоба Опубликовано 19 ноября, 2012 может стоит книжку по которой ты учишься прочитать до конца?
promises Опубликовано 19 ноября, 2012 Жалоба Опубликовано 19 ноября, 2012 1. можно тупо записать в массив из 12 элементов количество дней в каждом месяце, а потом до N-1 месяца из входных данных плюсовать числа с массива, а потом прибавить кол-во дней из даты.2. да, можно записать строку, потом записать ее с конца до начала и удалить нули после пробелов.3. ищешь минимальное четное, ставишь в правый разряд, а остальные числа записываешь по убыванию
piecemaker Опубликовано 20 ноября, 2012 Жалоба Опубликовано 20 ноября, 2012 1. а можно в массив сразу писать накопленную сумму дней каждого месяца типа[31, 59, 90 ...]тогда ответ будет a=m[x]+y
TiPo Опубликовано 22 ноября, 2012 Автор Жалоба Опубликовано 22 ноября, 2012 Две решил. Но последняя не получается. Точнее получается, но не со всеми значениями.var a,b,c,n,m,m1,m2,k,l:word;begin//repeat readln(a,b,c);(*until*) if ((a<>0) or (b<>0) or (c<>0)) and ((a mod 2=0) or (b mod 2=0) or (c mod 2=0)) then begin m:=a; k:=b; l:=c; if (b then begin m:=b; k:=a; l:=c; end; if (c then begin m:=c; k:=b; l:=a; end; n:=m; m1:=k; m2:=l; if m1>l then begin m1:=l; m2:=k; end; write(m2,m1,n); (*n:=m2*100+m1*10+n; write(n);*) end else exit;end.program zp;С какими значениями не проходит узнать не получается. Так как проверяет удалённый сервер. Где может быть ошибка?
promises Опубликовано 22 ноября, 2012 Жалоба Опубликовано 22 ноября, 2012 по-моему у тебя не все условия покрываются., попробуй как то так сделать:var numArrayIn : array [1..3] of byte; numArrayOut : array [1..2] of byte; i, imin, temp: byte;begin readln(numArrayIn[1],numArrayIn[2],numArrayIn[3]); // не помню какой там ввод, если честно // в цикле находим минимальное четное temp := 10; for i:=1 to 3 do begin if ((numArrayIn[i] < temp) and (numArrayIn[i] mod 2 = 0)) then begin temp := numArrayIn[i]; imin := i; end; end; // -------------- temp := 1; for i:=1 to 3 do begin if (i <> imin) then begin numArrayOut[temp] := numArrayIn[i]; temp := temp + 1; end; end; if (numArrayOut[1] < numArrayOut[2]) then writeln(numArrayOut[2],numArrayOut[1],numArrayIn[imin]) else writeln(numArrayOut[1],numArrayOut[2],numArrayIn[imin])end.синтаксис правда не помню нихера да и намудрил скорее всего и проще можно было сделать
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти