IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Две задачки
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Учитель по информатике сказал что задачки простые, но для меня они темный лес. Может сможете мне помочь. Заранее благодарна .
1. Найти количество цифр кратных старшей цифре числа
2. В массиве 7*7 расставить строки в порядке возрастания количество четных чисел в их
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Первая:

var i,n,res:integer;

begin
writeln('Vvedite chislo');
readln(n);res:=0;
while (n>9) do n:=n div 10;
for i:=1 to 9 do if (i mod n=0) then inc(res);
writeln(res);
readln;
end.





--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Спасибо большое тебе Unconnected, осталась еще одна и я спасенаsmile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
Учитель по информатике сказал что задачки простые, но для меня они темный лес. Может сможете мне помочь. Заранее благодарна .

Принципиально - не БУДУ. Ровно до тех пор, пока не исправите ошибки. Касающиеся не программирования "что Вы!?". А чиста русккаго языку.
Надеюсь, Вы Свой язык уважаете? norespect.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Запятые, перед "что" и перед "сможете". wub.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


№2:
const m=7;
var mas:array [1..m,1..m] of byte;
i,j:byte;

function getodd(st:byte):byte;
var i:byte;
begin
result:=0;
for i:=1 to m do if not(odd(mas[st,i])) then inc(result);
end;

Procedure swap(p1,p2:byte);
var i,buf:byte;
begin
for i:=1 to m do begin
buf:=mas[p1,i];
mas[p1,i]:=mas[p2,i];
mas[p2,i]:=buf;
end;
end;

Procedure output;
var i,j:byte;
begin
for i:=1 to m do begin
for j:=1 to m do write(mas[i,j],' ');
writeln;
end;
writeln;
end;

begin
randomize;
for i:=1 to m do for j:=1 to m do mas[i,j]:=random(50);
output;
for i:=1 to m-1 do
for j:=m-1 downto i do if getodd(j)>getodd(j+1) then swap(j,j+1);
output;
end.


Ozzя
, да вроде не так всё запущено, бывает и хуже smile.gif Я, кстати, рад, что хоть кому-то в школе задачки дают..)


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
Запятые, перед "что" и перед "сможете".

Молодец. Еще тире после "они".
Жду Вашего варианта решения проблемы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


ААААААааааааааааааааааааа, расцеловала бы, большое спасибо за помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
Ozzя, да вроде не так всё запущено, бывает и хуже

Знаю. sad.gif

Dushka
Добрый дедушка Unconnected таки Вам помог. Не забудьте оному + поставить в рейтинг. ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Не могу поставить, не нажимается. Почему?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
Не могу поставить, не нажимается. Почему?

Постов - маловато будет. Я поставлю за Вас, ежели не возражаете.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Спасибо и вамsmile.gif Возражении не имею!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Я снова вернулась smile.gif , попросили обосновать задачки, а я ни бе ни ме ни кукареку mega_chok.gif , не могли бы вы еще пояснить алгоритм этих задачек, как-нибудь доступным языком все объяснить? wub.gif

Сообщение отредактировано: Dushka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Хех еще 9 дней и был бы ровно год с того момента как вам ответили.Вы более конкретно скажите что не можете описать словами?уж вывод на экран вы должны понимать как производиться в процедуре output.Если в кратце,то функция getodd считает количество НЕчетных чисел в строке и выводит в качестве результата.Функция swap меняет местами 2 строки.
А дальше остновная программа.В цикле проверяем,если количество нечетных в текущей строке больше чем в следующей,то меняем местами.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Саму суть задач мне бы разжевать unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну смотри у тебя есть массив 7х7 в нем в произвольном порядке записаны числа ты смотриш сколько у тебя в каждой строке четный чисел.Например в первой строке 1, во второй 4, в третьей 2, и тд.Ну и потом надо переставить строки так,чтобы вот эти самые числа были в порядке возрастания,тобиш в каждой следующей строке было как минимум не меньше,чем в предыдущей,тобиш первая строка останется на месте, а вторая и третья поменяются местами.Для примера,который я привел.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


Так, во вторую задачу вроде как вклинилась, а можно еще первую? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Ну, первую, для начала, надо правильно решить, прежде чем объяснять... Ибо то, что сейчас в посте №2 - оно, конечно, решает какую-то задачу, только не заданную в условии. Не верю я, что требовалось найти, сколько всего есть цифр, кратных старшей цифре числа. Наверняка задание стояло так: найти количество цифр числа, кратных его старшей цифре... Скажем, в 47854 их будет 3, а в 7889 - одна, если саму старшую цифру считать. Кстати, вот еще подвох: а считать ли?

Возможно, если бы это задание было решено верно - то продолжения бы не последовало...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Ну, если задание и правда такое, то вот, лучше поздно)

var oldest,c:char;
oldestv,r:byte;
begin
r:=1;
read(oldest);
oldestv:=ord(oldest)-ord('0');
repeat
read©;
if ((ord©-ord('0')) mod oldestv=0) then inc®; //добавить в условие "and (c<>#13)"
until (c=#13);
writeln®;
readln;readln;//второй нужен, потому что при выходе из цикла первый сразу срабатывает..
end.


Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Это неправильное решение. Введи 5735, и удивись, а с чего бы это 5-ка встречается 3 раза? smile.gif Открою тайну: Ord(#13) - Ord('0') = -35, хотим остаток от деления на 5 - получаем что? Ага, он самый, 0...

А насчет двух ReadLn подряд - ну сколько же можно говорить? После цикла прочитай из буфера #10 еще одним Read-ом, и не надо будет магические несколько ReadLn-ов добавлять для ожидания...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.09.2022 3:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name