Показать полную графическую версию : Turbo Pascal, Помогите написать пару программ
kirillsp
20-11-2006, 16:49
Народ, кто в этом понимает, можете мне помочь написать программу для Turbo Pascal?
1. Написать программу проверки знания основания Сантк-Петербурга. В случае ответа пользователя программа должна воодить правильный ответ. Нижу представлен рекомендуемый вид экрана во время работы программы:
В каком году основан Санкт-Петербург?
Введите число и нажмите ЕНТЕР
->1705
Вы ошиблись, Санкт-Петербург был основан в 1703 году.
2. Написать программу, которая вычисляет сумму первых n целых положительных четных чисел. Кол-во суммируемых чисел должно вводится во время рабты программы. Ниже представлен рекомендуемый вид экрана во время работы программы:
Вычисление суммы четных положительных чисел.
Введите кол-во суммируемых чисел и нажмите ЕНТЕР
->12
Сумма первых 12 положительных чисел равно 156.
kirillsp
Лабы сдавать пора, да? Почитайте книжку, говорят помогает.
Пора, как мне кажется, запретить просьбы "помочь написать программу", без указания конкретной проблемы. Ибо сводятся все они к "напишите за меня пожалуйста программу, очень надо."
hellrised
20-11-2006, 19:44
тут же примитив:
1)writeln [введите...]
readln(x)
if x=1703 then writeln...вы правы..
else writeln...ты не прав.
2) здесь не сложнее
цикл по х[i] если х[i]>0 and x[i]/2 без остатка,then s+x[i];
i:=i+1;
n:=n+1;
коряво,но суть такова, а для большей точности и правильного синтаксиса
Почитайте книжку, говорят помогает
что и ко мне относится :)
Diseased Head
20-11-2006, 20:00
Ибо сводятся все они к "напишите за меня пожалуйста программу, очень надо.
Согласен с тобой ivank. Мне это тоже не нравится. Непонятно: для чего люди учаться и как дальше думают здавать.
Но с другой стороны, ситуации бывают разные. И может действительно нужно.
kirillsp
20-11-2006, 20:09
Но с другой стороны, ситуации бывают разные. И может действительно нужно.
В том то и дело, по очень уважительной причине не мог присутсвовать на лекциях, а здавать работы уже надо. Ведь для кого-то это не состовляет ни какой сложности.
Diseased Head
20-11-2006, 22:47
Зла на вас не хватает. По ОЧЕНЬ уважительной причине... Да ладно гнать-то: небось по пиву, да по бабам или в Unreal Tournament задулся. Даже помогать не хочется таким. Ну ладно. Помогаю в первый и последний раз:
program PITER;
Var
year: integer;
Begin
writeln('В каком году основан Санкт-Петербург?');
writeln;
writeln('Введите число и нажмите ENTER:');
readln(year);
if year = 1703 then writeln('Вы правы, Санкт-Петербург был основан в 1703 году.')
else writeln('Вы ошиблись, Санкт-Петербург был основан в 1703 году.');
readln;
End.И вторая программа:
program SUMMA;
Var
a: array [1..100] of integer;
sum, k, i: integer;
Begin
randomize;
for i := 1 to 100 do a[i] := random(101) - 50;
writeln('Вычисление суммы четных положительных чисел.');
writeln;
writeln('Введите количество суммируемых чисел и нажмите ENTER:');
readln(k);
sum:=0;
for i:=1 to k do
begin
if (a[i] >= 0) and (a[i] mod 2 = 0) then sum := sum + a[i]
end;
writeln('Сумма первых ',k,' положительных, чётных чисел равна ',sum);
readln;
End.Я учу C/C++ (Pascal совсем забыл да и не знал особо), но тем не менее написал эти проги. И тебе советую научится это делать. Потом будет тяжелее. Это-ж простецкие примеры.
Diseased Head
Второй пример неверный. В смысле неверная интерпретация задания. Нужно просуммировать первые k положительных чисел (2, 4, 8, ..., k). Т.е. 2 + 4 + 8 + 10 + ... + 24 = 156, если глянуть на тестовый пример. Можно считать сумму в цикле (на что вероятно задание), а можно вспомнить восьмой класс и формулу для вычисления суммы k членов арифметической прогрессии. В данном случае ответ - k*(k+1) (и всё).
Diseased Head
20-11-2006, 23:17
ivank
Аааа.... То-то, я думал, чёта он сложнее первого.
kirillsp
20-11-2006, 23:19
Diseased Head, спасибо тебе, действительно выручил ;)
Кстати, зря ты так думаешь... На самом деле было всё намного серъёзнее, хотя "баб и пиво" забывать не надо :)
hellrised
20-11-2006, 23:24
kirillsp
кликни Diseased Head полезное сообщение!!!!!!
kirillsp
20-11-2006, 23:26
kirillsp
кликни Diseased Head полезное сообщение!!!!!!
Конечно!
Diseased Head
20-11-2006, 23:34
Тогда так:
program SUMMA;
Var
k: integer;
Begin
writeln('Вычисление суммы четных положительных чисел.');
writeln;
writeln('Введите количество суммируемых чисел и нажмите ENTER:');
readln(k);
if k <= 0 then writeln('Неверный ввод')
else writeln('Сумма первых ',k,' положительных, чётных чисел равна ',k*(k+1));
readln;
End.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.