PDA

Показать полную графическую версию : Turbo Pascal, Помогите написать пару программ


kirillsp
20-11-2006, 16:49
Народ, кто в этом понимает, можете мне помочь написать программу для Turbo Pascal?

1. Написать программу проверки знания основания Сантк-Петербурга. В случае ответа пользователя программа должна воодить правильный ответ. Нижу представлен рекомендуемый вид экрана во время работы программы:

В каком году основан Санкт-Петербург?
Введите число и нажмите ЕНТЕР
->1705
Вы ошиблись, Санкт-Петербург был основан в 1703 году.


2. Написать программу, которая вычисляет сумму первых n целых положительных четных чисел. Кол-во суммируемых чисел должно вводится во время рабты программы. Ниже представлен рекомендуемый вид экрана во время работы программы:

Вычисление суммы четных положительных чисел.
Введите кол-во суммируемых чисел и нажмите ЕНТЕР
->12
Сумма первых 12 положительных чисел равно 156.

ivank
20-11-2006, 19:29
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 совсем забыл да и не знал особо), но тем не менее написал эти проги. И тебе советую научится это делать. Потом будет тяжелее. Это-ж простецкие примеры.

ivank
20-11-2006, 23:12
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