Решение задачек на Turbo Pascal

Дошкольникам, школьникам, студентам и абитуриентам
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задача 1. Покатит?
Если что, то пользуюсь http://pascalabc.net/WDE/

//
//
//

var
// Глобальные переменные для 3-х чисел
x1, x2, x3 : integer;
Summ : integer = 0;


// Процедура ввода чисел
procedure InputNumber;
begin
write ('Введите первое число: '); readln (x1);
write ('Введите второе число: '); readln (x2);
write ('Введите третье число: '); readln (x3);
end;

// Процедура суммирования чисел
procedure SummNumber;
begin
Summ := x1 + x2 + x3;
end;

// Выводим четные из x1, x2, x3
procedure ChetnNumber;
begin
if (x1 mod 2) = 0 then
writeln (x1 + ' - четное');
if (x2 mod 2) = 0 then
writeln (x2 + ' - четное');
if (x3 mod 2) = 0 then
writeln (x3 + ' - четное');
end;



begin
InputNumber;
SummNumber;
writeln ('Сумма введенных чисел = ' + Summ);
ChetnNumber;
end.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задание 2.

//
//
//

const
Str : string = 'строка 123434 проверка тест А увлвл 234фффааа';

var
i : integer = 0;
CountA : integer = 0;



begin
for i := 1 to length(Str) do begin
if Str = 'А' then
CountA := CountA + 1;
end;

writeln ('Количество вхождений "А" в строку "'+ Str + '" = ' + CountA);
end.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задания похоже по теме массивы, поэтому в Задании 3 буду делать с массивами, а не с Pos и Insert.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

//
//
//

var
i : integer = 0;
Str : string = 'стВока 123434 ВпроверкаВ тест А увлвл 234фффааа';



// Строка это массив символов. Str[1] - первый символ строки.
// На наличие пробела после В не сказано проверять, поэтому если пробел есть "В ", то будет два пробела "В "
begin
writeln ('Исходная строка - ' + Str);

for i := 1 to length(Str) do begin
if Str = 'В' then
Str := Copy(Str,1,i) + ' ' + Copy(Str,i+1,length(Str)-i);
end;

writeln('Строка с пробелами после В - ' + Str);
end.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задание 4.

//
//
//

var
a : array [1..100] of integer;
i : integer = 0;
Summ : integer = 0;



begin
randomize; // инициализируем (включаем) генератор случайных чисел
// Заполняем массив
for i := 1 to 100 do
a := random(2001) - 1000; // от -1000 до +1000

write('Содержимое массива - ');
// Показываем содержимое массива
for i := 1 to 100 do
write(a + ' ');

writeln;

// Считаем сумму положительных элементов
for i := 1 to 100 do begin
if a > 0 then Summ := Summ + a;
end;

writeln('Сумма положительных элементов массива - ' + Summ);
end.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задание 5.

//
//
//

var
a : array [1..100] of integer;
i : integer = 0;
MinEl : integer = 10000; IndMin : integer = 0; // Минимальный элемент, значение и индекс в массиве.
// Первоначально ставим значение выше любого элемента массива, иначе сравнение со значением MinEl по-умолчанию (0) отсечёт все положительные числа



begin
randomize; // инициализируем (включаем) генератор случайных чисел
// Заполняем массив
for i := 1 to 100 do
a := random(2001) - 1000; // от -1000 до +1000

write('Содержимое массива - ');
// Показываем содержимое массива
for i := 1 to 100 do
write(a + ' ');

writeln;

// Находим минимальный
for i := 1 to 100 do begin
if a < MinEl then begin
MinEl := a;
IndMin := i;
end;
end;

writeln('Минимальное число в массиве "'+MinEl+'" находится в ячейке '+IndMin);
end.
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Задача 6.

//
//
//

var
a : array [1..70] of integer; // Массив 70 семей, в каждом элементе количество членов семьи
i : integer = 0;
CountChel : integer = 0; IndMax : integer = 0;



begin
randomize; // инициализируем (включаем) генератор случайных чисел
// Заполняем массив
for i := 1 to 70 do
a := random(9) + 1; // ограничиваем количество членов семьи 10 и отсекаем значение 0. random(9) дает от 0 до 9. С +1 от 1 до 10.

write('Содержимое массива - ');
// Показываем содержимое массива
for i := 1 to 70 do
write(a + ' ');

writeln;

// Находим самую большую семью
// при одинаковом количестве человек наибольшей выбирается семья в следующей квартире
// если при равенстве человек нужно оставлять имеющуюся семью, то сделать if a > CountChel then begin
for i := 1 to 70 do begin
if a >= CountChel then begin
CountChel := a;
IndMax := i;
end;
end;

writeln('Семья с максимальным количеством человек - '+CountChel+' живет в квартире - '+IndMax);
end.
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

TheBest, блин. дай ты отчислить двоечников :)
На мужике- по любому лучше ...© alisa.smol
FreemanNow
Сообщения: 30077
Зарегистрирован: 02 окт 2006, 09:23
Настоящее имя: Виталий
Откуда: г.Смоленск
Благодарил (а): 0
Поблагодарили: 2 раза
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение FreemanNow »

mamrot писал(а):TheBest, блин. дай ты отчислить двоечников :)
плюсую))
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

Не нагнетайте.
Если специалист стремится минимизировать напряги в достижении цели - это хороший специалист.
Я на первых курсах тоже списывал, потом понравилось и сам делать стал.
WickedW00LF
Сообщения: 35
Зарегистрирован: 07 янв 2011, 18:05
Настоящее имя: Александр
Благодарил (а): 0
Поблагодарили: 0

Re: Решение задачек на Turbo Pascal

Сообщение WickedW00LF »

Бестушка, спасибо тебе огромное)
На автофоруме залайкаю
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

WickedW00LF писал(а):Бестушка, спасибо тебе огромное)
На автофоруме залайкаю
Былоп за што. :)
А спасибы на автофоруме это фигня типа народного контроля. :)
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

TheBest, а я их вижу, и они не способны ничего далее делать сами. Минимизировать напряги - это подойти к преподу взять все лабы, сделать за неделю и сдать, отдыхать семестр по этому предмету, получить автомат.
а по поводу задачек, 29 - последняя официальная пересдача, экзамен последний был в районе 22-23 числа. Задачи в основном - для зачета (тем более в таком количестве). Нормальному студенту они 28 числа не могут быть нужны. Можно конечно поверить, что он не получил единственный допуск по программированию/информатике... но что-то не верится.
На мужике- по любому лучше ...© alisa.smol
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

mamrot, Я конкретную ситуацию не знаю, поэтому судить не берусь.
Опять же, может в той специальности программирование не профильный предмет или у человека просто оно туговато идёт. Кстати, сложности с предметом могут быть и из-за качества преподавания. ;)
FreemanNow
Сообщения: 30077
Зарегистрирован: 02 окт 2006, 09:23
Настоящее имя: Виталий
Откуда: г.Смоленск
Благодарил (а): 0
Поблагодарили: 2 раза
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение FreemanNow »

mamrot, добавлю к этому, что задачки то детсадовские, больше времени потрачено на получения ответа на форуме, нежели на то, чтобы самому их решить, а следовательно, нет ни малейшего желания учиться. Нафига помогать таким студентам ?
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

TheBest, радует, что данный студент неконкурентоспособен, по сравнению с тобой.
На мужике- по любому лучше ...© alisa.smol
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

mamrot, Старый я уже для студенчества.
СФ МЭИ, ВМ-1-96.
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

TheBest, так и я о том же. Вроде как выпускники - конкуренты работающим инженерам. Но этот 100% нет :)
П.С. судя по всему заочник, вроде как 92 года. Возможен вариант, что нужна только корочка, не знания.
И все же, по информатике главное - уметь гуглить, и понимать, анализировать найденное, а не тупо на непрофильном форуме просить помощи.
На мужике- по любому лучше ...© alisa.smol
Аватара пользователя
Azazelius
Сообщения: 40223
Зарегистрирован: 21 дек 2005, 09:57
Откуда: объективная реальность
Благодарил (а): 1971 раз
Поблагодарили: 759 раз
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение Azazelius »

mamrot, так ты ему пару вхерачь за списывание с форума... ))) он же, так понимаю, один в один перенесет с форума на бумагу и тебе принесет показывать, вот мол справился )))
Чем старше становишься, тем яснее понимаешь, что день рождения раз в году — не так уж и редко…
Лесн@я
Сообщения: 6316
Зарегистрирован: 24 окт 2011, 12:03
Благодарил (а): 0
Поблагодарили: 0

Re: Решение задачек на Turbo Pascal

Сообщение Лесн@я »

я институте всем курсовые по экономике делала, ну и что, ни мне, ни кому из тех кому я их делала не пригодились эти знания, разве только как дополнительная тренировка технического разума :-)
так что не факт, что понадобится этому челу эти знания, а нужны будут-освоит :-)
в этом отношении любили все у нас Селищева, который считал, что если тебе это надо-будешь учить, а нет-сильно не мучал, вернее совсем не мучал :co_ol:
вот я когда-то ТП знала, но за 19 лет его не применения, совсем ничего не помню :-)
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

Azazelius, не мой предмет :)
бездельники и разгильдяи четко делятся на 2 группы: первые нагло утверждают, что делал все сам, да взял пример у одногруппника - чтоб знать как делать, но все сам считал (потом доказывают мне, что это эксель плохо считает, когда не сходится с моими расчётами); вторые просто как болото, пока раза 3 не спросишь что-то предпочитают молчать, ближе к дате пздца - умолять поставить оценку. Бесят и те и другие.
На 150 человек встречаются 3-4, которые просто живут весело, потом в последние недели хватают чужие рыбы, приносят кое-как переправленные, после первых же замечаний делают очень хорошо. Ну и плюс -6 человек, кто сам сразу хорошо все делает. Итого 10 человек на поток, которым не тяжело справляться с программой (курсы у меня не спец., общеобразовательные, сильно не жму). Вот такая статистика.
На мужике- по любому лучше ...© alisa.smol
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

Лесн@я,
дополнительная тренировка технического разума :-)
если честно - в этом весь смысл образования. Научиться учиться и развить мозг.
По науке часто приходится сталкиваться с решением систем диф.уров и просто нелинейных уравнений. Несмотря на то, что я люблю математику, голова все не удерживает, и я не помню четких алгоритмов их решений, подходов и т.п. Но. Полученного образования (а не знаний), хватает, чтобы БЫСТРО найти нужный источник (книгу, сайт, статью), обоснованно выбрать метод решения, и реализовать его в нужной мне среде. Да я не помню наизусть формулы МНК (когда не преподаю их 1 курсу), но знаю что могу их вывести, это раз, и второе, самое главное, в любой среде, опираясь на учебник или вики, реализовать минут за 20-30 схему расчётов с изменяемыми параметрами. Очень хочется научить студентов именно этому - поворачивать задачу к себе тем боком, в котором ты хорош, и уметь найти и использовать информацию для ее решения. Анализ и синтез, не более, я не заставляю зубрить справочники "объёмов красных шариков".
На мужике- по любому лучше ...© alisa.smol
barmoglot
Сообщения: 30428
Зарегистрирован: 17 мар 2009, 18:43
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение barmoglot »

mamrot писал(а): Научиться учиться и развить мозг.
турбо паскалем мозг развивать, не издевайся над студентами. У меня вон на потоке 2 однокурсника компьютер первый раз в жизни в институте уведели, какой им TPascal и VBasic. А сейчас большие люди. :-)
Правда преподаватель тоже так и не поняла, как через динамическую память прога работала, но автоматом все равно мне не поставила.
Лесн@я
Сообщения: 6316
Зарегистрирован: 24 окт 2011, 12:03
Благодарил (а): 0
Поблагодарили: 0

Re: Решение задачек на Turbo Pascal

Сообщение Лесн@я »

нам на 5-м курсе Мурзилка комп принес и показывал, что есть такая штука Виндоус, в которой все так интересно и нарисовано, что на крестик нажимаешь и документ превращается в бумажку, которую смяли и бросается в корзину :ya_hoo_oo:
Аватара пользователя
TheBest
Сообщения: 13222
Зарегистрирован: 08 фев 2005, 14:36
Благодарил (а): 11 раз
Поблагодарили: 8 раз

Re: Решение задачек на Turbo Pascal

Сообщение TheBest »

OS/2 рулила.
Аватара пользователя
mamrot
Сообщения: 2787
Зарегистрирован: 06 май 2008, 16:36
Настоящее имя: Мария
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение mamrot »

barmoglot, мне кажется ты не вчера универ закончил.
У меня студенты ноют - интегралы не понимают. Вообще. Простейшие. И не моя забота их обучать интегрированию/дифференцированию. Тоже не мучать? Понять и простить?
На мужике- по любому лучше ...© alisa.smol
Аватара пользователя
Dejmos
Сообщения: 6470
Зарегистрирован: 30 мар 2007, 15:35
Настоящее имя: Денис
Откуда: Singularity
Благодарил (а): 490 раз
Поблагодарили: 1421 раз
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение Dejmos »

О, паскаль. Я аж школу вспомнил :cry_ing:
* Руссо программисто, облико аморале *
Аватара пользователя
Инженер
Сообщения: 9069
Зарегистрирован: 02 янв 2013, 20:10
Настоящее имя: Владимир
Откуда: Москва
Благодарил (а): 0
Поблагодарили: 0

Re: Решение задачек на Turbo Pascal

Сообщение Инженер »

Задача 6
Изображение
Спойлер
TheBest писал(а):Задача 6.

//
//
//

var
a : array [1..70] of integer; // Массив 70 семей, в каждом элементе количество членов семьи
i : integer = 0;
CountChel : integer = 0; IndMax : integer = 0;



begin
randomize; // инициализируем (включаем) генератор случайных чисел
// Заполняем массив
for i := 1 to 70 do
a := random(9) + 1; // ограничиваем количество членов семьи 10 и отсекаем значение 0. random(9) дает от 0 до 9. С +1 от 1 до 10.

write('Содержимое массива - ');
// Показываем содержимое массива
for i := 1 to 70 do
write(a + ' ');

writeln;

// Находим самую большую семью
// при одинаковом количестве человек наибольшей выбирается семья в следующей квартире
// если при равенстве человек нужно оставлять имеющуюся семью, то сделать if a > CountChel then begin
for i := 1 to 70 do begin
if a >= CountChel then begin
CountChel := a;
IndMax := i;
end;
end;

writeln('Семья с максимальным количеством человек - '+CountChel+' живет в квартире - '+IndMax);
end.

Выполнил код программы, результат получился такой:
Содержимое массива - 1 5 9 1 7 8 6 7 5 4 7 1 4 1 2 2 3 7 8 7 7 6 2 4 8 9 5 9 5 6 2 9 5 7 6 9 6 1 2 2 5 1 2 3 5 1 6 4 8 2 3 1 1 3 2 4 4 5 2 8 4 6 3 8 3 7 6 6 5 2
Семья с максимальным количеством человек - 9 живет в квартире - 36


В коде нужно убрать лишнее, т.к. не выполняется условие поставленной задачи.
Аватара пользователя
Инженер
Сообщения: 9069
Зарегистрирован: 02 янв 2013, 20:10
Настоящее имя: Владимир
Откуда: Москва
Благодарил (а): 0
Поблагодарили: 0

Re: Решение задачек на Turbo Pascal

Сообщение Инженер »

И ещё. С точки зрения понятий, семья не может состоять из 1 человека, это программист также обязан учитывать при составлении кода.
FreemanNow
Сообщения: 30077
Зарегистрирован: 02 окт 2006, 09:23
Настоящее имя: Виталий
Откуда: г.Смоленск
Благодарил (а): 0
Поблагодарили: 2 раза
Контактная информация:

Re: Решение задачек на Turbo Pascal

Сообщение FreemanNow »

Инженер писал(а):И ещё. С точки зрения понятий, семья не может состоять из 1 человека, это программист также обязан учитывать при составлении кода.
а с точки зрения простой логики он и так отсортируется как наименьшее значение в массиве и ставить дополнительное условие нет ни малейшего смысла.
Ответить Пред. темаСлед. тема