Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Turbo Pascal, Помогите написать пару программ (http://forum.oszone.net/showthread.php?t=74913)

kirillsp 20-11-2006 16:49 514639

Turbo Pascal, Помогите написать пару программ
 

Народ, кто в этом понимает, можете мне помочь написать программу для Turbo Pascal?

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

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



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

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

ivank 20-11-2006 19:29 514708

kirillsp
Лабы сдавать пора, да? Почитайте книжку, говорят помогает.

Пора, как мне кажется, запретить просьбы "помочь написать программу", без указания конкретной проблемы. Ибо сводятся все они к "напишите за меня пожалуйста программу, очень надо."

hellrised 20-11-2006 19:44 514710

тут же примитив:
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 514713

Цитата:

Цитата ivank
Ибо сводятся все они к "напишите за меня пожалуйста программу, очень надо.

Согласен с тобой ivank. Мне это тоже не нравится. Непонятно: для чего люди учаться и как дальше думают здавать.
Но с другой стороны, ситуации бывают разные. И может действительно нужно.

kirillsp 20-11-2006 20:09 514716

Цитата:

Но с другой стороны, ситуации бывают разные. И может действительно нужно.
В том то и дело, по очень уважительной причине не мог присутсвовать на лекциях, а здавать работы уже надо. Ведь для кого-то это не состовляет ни какой сложности.

Diseased Head 20-11-2006 22:47 514765

Зла на вас не хватает. По ОЧЕНЬ уважительной причине... Да ладно гнать-то: небось по пиву, да по бабам или в 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 514777

Diseased Head
Второй пример неверный. В смысле неверная интерпретация задания. Нужно просуммировать первые k положительных чисел (2, 4, 8, ..., k). Т.е. 2 + 4 + 8 + 10 + ... + 24 = 156, если глянуть на тестовый пример. Можно считать сумму в цикле (на что вероятно задание), а можно вспомнить восьмой класс и формулу для вычисления суммы k членов арифметической прогрессии. В данном случае ответ - k*(k+1) (и всё).

Diseased Head 20-11-2006 23:17 514779

ivank
Аааа.... То-то, я думал, чёта он сложнее первого.

kirillsp 20-11-2006 23:19 514780

Diseased Head, спасибо тебе, действительно выручил ;)

Кстати, зря ты так думаешь... На самом деле было всё намного серъёзнее, хотя "баб и пиво" забывать не надо :)


hellrised 20-11-2006 23:24 514783

kirillsp
кликни Diseased Head полезное сообщение!!!!!!

kirillsp 20-11-2006 23:26 514784

Цитата:

kirillsp
кликни Diseased Head полезное сообщение!!!!!!
Конечно!

Diseased Head 20-11-2006 23:34 514787

Тогда так:
Код:

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.



Время: 00:00.

Время: 00:00.
© OSzone.net 2001-