Новые сообщения · Правила  
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Решение задач в Паскале
Решение задач в Паскале
Помогите составить программу решения следующих задач!
1. Дано два числа а и в. Выведите гипотенузу по заданным катетам.
2. Напиши программу, которая считывает целое число ивыводит текст аналогичный примеру. Пробелы, знаки препинания, строчные буквы важны. Пример:
ввод вывод
179 The next number for the numder 179 is 180
The previaus number for the numder 179 is 178

3. N школьников делят K яблок поровну, неделящийся остаток остается в корзине. Сколько яблок достанется каждому школьнику? Программа получает на входе числа N и K и должна вывести искомое количество яблок.
4. N школьников делят K яблок поровну, неделящийся остаток остается в корзине. Сколько яблок останется в корзине?
5. Длина Московской кольцевой автомобильной дороги 109 км. Байкер Вася стартует с нулеого илометра МКАДа и едет со скоростью V км в час. На какой отметке он остановится через t часов?
програама получает на входе два числа v и t. если v>0, то Вася движется в положительном направлении, если v<0, то в отрицательном. программа должна вывести целое число от 0 до 108 - номер отметки, на которой остановится Вася.
1 | Автор: MVera | 2012-02-06, 20:12   |  Репутация: [ + 0 ]
Quote (MVera)
2. Напиши программу, которая считывает целое число ивыводит текст аналогичный примеру. Пробелы, знаки препинания, строчные буквы важны. Пример:
ввод вывод
179 The next number for the numder 179 is 180
The previaus number for the numder 179 is 178


Задачка похожая на задачу с контестера. Если так и есть, то слабый контестер выбрал.
Завтра будет код ко всем твои задачкам, сейчас спать хочу


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2012-02-06, 23:47   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2012-02-06, 23:47   |  Репутация: [ + 211 ]
Да я их и не выбирала - просто учусь, а в программировании не в зуб ногой. Буду очень рада если вы мне поможите!!!
Там нам еще задач задали, но решила постепенно выкладывать.
3 | Автор: MVera | 2012-02-07, 15:49   |  Репутация: [ + 0 ]
Первая:
var
q,a,b:real;
begin
read(a,b);
q:=sqrt(a*a+b*b);
writeln(q:2:2);
end.

Вторая:
var
a:integer;
begin
read(a);
writeln('The next number for the numder ',a,' is ',a+1);
write('The previaus number for the numder ',a,' is ',a-1);
end.

пусть я не знаток английского, но разве пишется numder, а не number?)

Третья:
var
n,k:integer;
begin
read(n,k);
writeln(n mod k);
end.

Четвёртая:
var
n,k:integer;
begin
read(n,k);
writeln(n div k);
end.

Пятая:
var
v,t:integer;
begin
read(v,t);
if v>0 then writeln(0+v*t) else writeln(109-v*y);
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
4 | Автор: Berestovskiy | 2012-02-08, 00:04   |  Репутация: [ + 211 ]
Люди человеки,помогите пожалуйста с задачкой нуна вот чё Составить прогу используя оператор цикла с предусловием. Вычислить количество отрицательных значений Sin(Fi) на интервале {а.в} с заданным шагом.
5 | Автор: GriF | 2012-02-08, 09:42   |  Репутация: [ + 0 ]
5 | Автор: GriF | 2012-02-08, 09:42   |  Репутация: [ + 0 ]
Сделала программы к задачам, но при добавлении в контестер начались проблемы. Задача 1 и 2 - пишет неправильный формат вывода. А у 3 и 4 в ответе получается не то что надо.
В 3 просят выводить число яблок, которое достанется каждому. Например школьников 4, яблок 12 - должно получиться 3. В 4 задаче при аналогичных числах должно получиться 2 (просят вывести сколько ябок останется в корзине).
А все эти задачи в каком паскале набираются? Мне нужно во Фри Паскаль.
6 | Автор: MVera | 2012-02-08, 16:09   |  Репутация: [ + 0 ]
Мы когда решали на учебе то в ответах задач получались целые числа, без дробной части после запятой - может поэтому в контестере пишет неправильный формат вывода?!

Добавлено (09.02.12, 15:47)
---------------------------------------------
А в пятой в предпоследней строке впоследней скобке У - это что?

7 | Автор: MVera | 2012-02-09, 15:47   |  Репутация: [ + 0 ]
Ну тогда напиши так:
Quote (Berestovskiy)
writeln(q:0:0);


то Т ))


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
8 | Автор: Berestovskiy | 2012-02-09, 15:49   |  Репутация: [ + 211 ]
Cпасибо вам большое!! По этому блоку задач через контестер прошло только 2(про ябоки). В первой и второй пишет "Неправильный ответ". А в пятой формула маленько не так, потому что должно получиться число не больше 109. Я ее сама переделала, но тогда в ответе стоят цифры после запятой, а должно быть целое число. Ну, я думаю фиг с ними. Лучше посмотрите вот на эти 5 задач "Условный оператор"
1. Даны два целых числа, каждое число записано в отдельной строке. Выведите наибольшее из данных чисел. (Например, ввод: 1 2. Вывод: 2.)
2. Требуется определить, является ли данный год високосным. (Если его номер кратен 4, но не кратен 100, а также есл он кратен 400 - то год високосный). (Например, Водные данные: 2007. Выходные данные: No. Входные данные: 2000. Выходные данные: Yes.)
3. В условии одной из задач написано: "Если данное четырехзначное число является симметричным, выведите 1, иначе выведите ЛЮБОЕ ДРУГОЕ ЦЕЛОЕ ЧИСЛО". Для проверки задачи используются заранее придуманные примеры и правильные ответы на них. Школьнику кажется, что он решил эту задачу, но тестирующая система почему-то не принимает его решение. Школьник думает что это оттого, что он выводит не то ЛЮБОЕ ЧИСЛО, которое записано в правильных ответах. Напишите программу, которая по ответу, записанному в тестирующей системе и по ответу школьника определяет верно ли школьник решил задачу. Программа получает на вход два числа: ответ, записанный в тестирующей системе и ответ школьника. Программа должна вывести Yes, если школьник дал верный ответ и No в противоположном случае. (Например: Ввод: 11 и -1. Вывод:YES. Ввод: 3 и 1. Вывод: NO).
4. В математике функция sign(х) (знак числа) определена так: sign(х) = 1, если х>0. sign(х) = -1, если х<0. sign(х)= 0, если х=0. Для каждого числа х выведите значение sign(х). (Например, Ввод: 179. Вывод:1.)
5. Даны два целых числа, каждое записано в отдельной строке. Программа должна вывести число 1, если первое число больше второго, число 2, если второе число больше первого, или число 0, если ни равны. (например: Ввод: 1 2. Вывод: 2).
9 | Автор: MVera | 2012-02-10, 07:48   |  Репутация: [ + 0 ]
1.
var
a,b:integer;
begin
readln(a);
read(b);
if a>b then writeln(a) else writeln(b);
end.
2.
var
a:integer;
begin
read(a);
if (a mod 4=0)and(a mod 400=0)and(a mod 100<>0) then writeln('Yes')elsewriteln('No);
end.
3. После пар приеду - разберусь, не совсем понял условие. Если есть возможность - поясни пожалуйста)
4.
var
x:integer;
begin
read(x);
if x>0 then writeln('1') else
if x<0 then writeln('-1') else writeln('0');
end.
5.
var
a,b:integer;
begin
readln(a);
read(b);
if a>b then writeln('1') else
if a<b then writeln('2') else writeln('0');
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
10 | Автор: Berestovskiy | 2012-02-10, 08:56 | Изменено: Berestovskiy - Пт, 2012-02-10, 09:09   |  Репутация: [ + 211 ]
А вот я не смогу пояснить вам, потому что я сама не поняла эту задачу. Написала так, как есть.
11 | Автор: MVera | 2012-02-11, 09:23   |  Репутация: [ + 0 ]
Ладно..попробую сделать так как я понял..

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
12 | Автор: Berestovskiy | 2012-02-11, 10:00   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
12 | Автор: Berestovskiy | 2012-02-11, 10:00   |  Репутация: [ + 211 ]
Загрузила на "ОК" первую и четвертую задачи! Во второй - неправильный ответ. Начала проверять и на 2007 и на 2000 годы выводит "No" - может что-то не так?

Добавлено (11.02.12, 20:10)
---------------------------------------------
Пятая задача тоже прошла!!! Ура! Я так вам благодарна!!!

13 | Автор: MVera | 2012-02-11, 20:10   |  Репутация: [ + 0 ]
Почему не так?
2007 не кратен 4-ём и 400, по этому не высокосен.
2000 кратен 4-ём и 400, но в тоже время кратен 100, по этому он тоже не высокосен..
хотя я могу ошибаться..попробуй вот так:
Код
var
a:integer;
begin
read(a);
if (a mod 4=0)and(a mod 100<>0)or(a mod 400=0) then writeln('Yes')else writeln('No');
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
14 | Автор: Berestovskiy | 2012-02-12, 10:36 | Изменено: Berestovskiy - Вс, 2012-02-12, 10:37   |  Репутация: [ + 211 ]
Теперь все получилось!
У меня осталось еще 10 задач.
Задачи "Оператор цикла for"
1. Выведите (через пробел) все четные числа от а до в. (Например: Входные данные:1 4. Выходные данные: 2 4. Входные данные: 2 6. Выходные данные: 2 4 6.)
2. Вводятся четыре числа: а,в,с,d. Выведите все числа на отрезке от а до в, дающие остаток с при делении на d. (например: Входные данные: 1 4 1 2. Выходные данные: 1 3. Входные данные: 1 5 0 4. Выходные данные: 4.)
3. Выведите все числа на отрезке от а до в, являющеся полными квадратами. (Например: Входные данные: 1 5 Выходные данные: 1 4. Входные данные: 2 9. Выходные данные: 4 9).
4. Выведите все натуральные делители числа х в порядке возрастания (включая 1 и само число). (Например: Входные данные: 6. Выходные данные: 1 2 3 6. Входные данные: 5. Выходные данные: 1 5).
5. Подсчитайте количество натуральных делителей числа х (включая 1 и само число; х<=30000). (Например: Входняе данные: 6. Выходные данные: 4. Входные данные: 5. Выходняе данные:2).
15 | Автор: MVera | 2012-02-13, 04:58   |  Репутация: [ + 0 ]
1.
var
a,b,i:integer;
begin
read(a,b);
for i:=1 to b do
if i mod 2=0 then write(i,' ');
end.
2.
var
i,a,b,c,d:integer;
begin
read(a,b,c,d);
for i:=a to b do
if i div c=d then write(i,' ');
end.
3.
var
i,a,b:integer;
begin
read(a,b);
for i:=a to b do
if i*i<=b then write(i*i,' ');
end.
4.
var
i,a:integer;
begin
read(a);
for i:=1 to a do
if a mod i=0 then write(i,' ');
end.
5.
var
i,a,s:integer;
begin
read(a);
s:=0;
for i:=1 to a do
if a mod i=0 then s:=s+1;
writeln(s);
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
16 | Автор: Berestovskiy | 2012-02-13, 08:59   |  Репутация: [ + 211 ]
Задачи 1,4,5 загрузила на ОК. А вот со 2 и 3 возникли проблемы. Во второй задаче уже при проверке через Rum пошли проблемы - не такие ответы как в примере. Зашла на сайт и там в разборе задачи написано следующее: Пробегаем циклом от a до b. Пусть счетчиком мы возьмем переменную целого типа i. Когда мы пробегаем
цикл мы должны проверять если i дает остаток с при деление на d то мы сразу выводим этот элемент в
данном случае i.
А в третьей контестер пишет - частичное решение. Вразборе дали следущие поясненя:Пробегаем циклом от a до b. Пусть счетчиком мы возьмем переменную целого типа i. Объявим переменную
целого типа j. Каждый раз мы будем в j хранить корень от числа i. Еще мы должны каждый раз проверять если j*j=i то мы выведем число i. Цикл в этом заканчивается только он выполняет 2 действия выше описанного. Если разберетсь - буду рада!
17 | Автор: MVera | 2012-02-13, 17:06   |  Репутация: [ + 0 ]
Quote (Berestovskiy)
if i div c=d then write(i,' ');

Поменяй ц и д местами


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
18 | Автор: Berestovskiy | 2012-02-14, 09:44   |  Репутация: [ + 211 ]
Последний блок задач.
Оператор цикла while.
1.Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N.
Формат входных данных: Задано единственное число N.Формат выходных данных: Необходимо вывести все точные квадраты натуральных чисел, не превосходящие данного числа N. Например: Ввод: 50. Вывод: 1 4 9 16 25 36 49.
2. Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1. Например: Ввод:15. Вывод: 3.
3. По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания. Операцией возведения в степень пользоваться нельзя! Напрмер: Ввод: 50. Вывод:1 2 4 8 16 32.
4. Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! Например: Ввод: 8. Вывод: YES. Ввод: 3. Вывод: No.
5. По данному натуральному числу N выведите такое наименьшее целое число k, что 2k≥N. Операцией возведения в степень пользоваться нельзя! Например: Ввод: 7. Вывод: 3.
19 | Автор: MVera | 2012-02-17, 06:33 | Изменено: MVera - Пт, 2012-02-17, 13:37   |  Репутация: [ + 0 ]
19 | Автор: MVera | 2012-02-17, 06:33 | Изменено: MVera - Пт, 2012-02-17, 13:37   |  Репутация: [ + 0 ]
1.
Код
var
i,n:integer;
begin
read(n);
i:=1;
while i*i<=n do begin
write(i*i,' ');i:=i+1;end;
end.

2.
Код
var
i,n,s:integer;
begin
read(n);
for i:=n downto 2 do
if n mod i=0 then s:=i;
writeln(s);
end.


Остальные будут немного позже


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
20 | Автор: Berestovskiy | 2012-02-20, 16:46   |  Репутация: [ + 211 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Решение задач в Паскале
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск: