• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Помогите решить программы на паскале

  • Автор темы SeReGa48
  • Дата начала
S

SeReGa48

1.Определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
1- 1 / 22 + 1 / 32 - 1 / 42 + . . . ; (-1)^(N-1) / N2 ; S= Pi^2 / 12 ; N= 1, 2, 3, . .
Погрешность вводиться с клавиатуры

2.Подсчитать число гласных и согласных букв в тексте и определить, каких букв больше. Учесть, что в строке могут быть другие символы, кроме букв.

3.Разделить экран по вертикали на две части. В первой части создать окно и вывести все символы от 0 до 255 с указанием номеров, во втором окне в двух колонках вывести два символа, бегающих в противоположных направлениях.
 
S

SeReGa48

это к первой
Код:
program _lab_3_var_1;
var m,summ,c,s1:integer;
n,s:integer;
begin
s:=(pi*pi)/12;
summ:=0;
n:=1;
c:=1;
m:=1;
repeat
c:=n/2;
m:=n div(2);
if c=m then s1:=1/(n*n) else s1:=(-1)/n*n;
summ:=summ+s1;
n:=n+1;
until summ=s;
writeln(n);
end.

А остальные я незнаю как делать
 
S

SeReGa48

Первая не работает
Не понял по какому принципу отделять во второй задаче
Третья задача на модуль CRT
 
S

SeReGa48

По какому принципу их сравнивать

В первой задачи пишет типо деление на ноль
 
H

hosm

Первая не работает
Ессно :)
А зачем там описывать ВСЕ переменные как integer?
С каких пор этот тип поддерживает вещественную арифметику?


Добавлено: и, кстати, где ввод с клавиатуры погрешности? реадлн (погрешность), так ведь? ;)
и проверка на то, что вычислено с заданной точностью )))


Добавлено:
По какому принципу их сравнивать
по вхождению в множество гласных и согласных нужного языка :(
знаете, у меня 9-летняя дочь находит в инете то, что ей надо... Вам лет сколько? не стыдно?
хотя бы как пример:

 
S

SeReGa48

Полностью переписал задачу, но все пишет деление на 0 помогите найти ошибку
Код:
var
s:real;
t:real;
n:integer;
elem:real;
l:real;
m:real;
summ:real;
x:real;

begin
s:=(pi*pi)/12;
n:=1;
elem:=1;
summ:=0;
readln(t);

repeat
l:=n/2;
m:=n div(2);
if l=m then elem:=1/n*n else elem:=(-1)/n*n;
begin
summ:=summ+elem;
x:=summ+t;
n:=n+1;
end;
until s=x;
n:=n-1;
writeln(n);
end.
 
H

hosm

Гм, даже не знаю, в чем-то первый вариант был даже ближе к истине, надо было только правильно описать переменные, добавить ввод нужных данных и правильные проверки. Ну, и исправить ошибки.
Ну, посмотрим второй и попытаемся понять, что же Вы хотели этим сказать...
1.
:RTFM:
Запомните: вещественные числа не сравниваются на точное равенство. s=x - некорректное условие...
Вычисление с заданной точностью t означает, что нужна проверка abs(summ-s) < t, где t>0.

2.
это убрать нафиг вместе с лишним begin-end внутри цикла и подкорректировать условие выхода из цикла (until), как описано в п.1.

3.
l:=n/2; m:=n div(2); if l=m then elem:=1/n*n else elem:=(-1)/n*n;
Зачем эти извраты, 2 лишних переменных, если есть функция odd?
Код:
elem:=1/(n*n);
if odd(n) then elem:=-elem;

Если испытываете особую неприязнь к функции odd, можете проверить иначе:
Код:
if (n mod 2) <>0 then elem:=-elem;

И обратите внимание на скобочки.
выражения у нас вычисляются слева направа, если нет скобок. Кстати, есть еще такая функция как sqr.

4.
Если вам сложно помочь так и скажите

А так тут делать нечего
В общем, no comments - и да простят меня остальные модераторы за игнорирование великого и могучего.
Я вообще уже больше 4 лет под лотус работаю и давно нет у меня ни паскаля, ни даже делфи, чтоб писать и проверять за Вас всю задачу, уж простите ;) я указала только ошибки и пути их преодоления...

Если вам сложно понять - так и скажите
А так тут делать нечего:

я Вам для Вашей задачи дала ссылку на блок-схему, поясняющую решение, практически готовое решение Вашей задачи, да еще и описание множеств, чтоб не надо было вспоминать 1-й класс (какие у нас гласные, какие - согласные).
Вы считаете, что в Вашем возрасте трудно было найти это самому в интернете, попытаться разобраться и нормально задать вопрос, если Вы чего-то не поняли?

По 3-й задаче мне влом смотреть, я не помню - "думайте сами, решайте сами"
 
V

vital

и попытаемся понять
И вот нечего тебе делать в 3 утра..
<table valign="top" style='margin:0;width:100%;border:1px dashed red;'>[tr]<td align='middle' bgcolor='#ff6060' valign='top' width='1%'>
<FONT color='#ffffff' size='+3'> ! </font>
</td><td align="midle" valign='top' style='background:#fff;'>а тебе в 5 часов писать такое? лучше б по делу на вопрос мой ответил... :RTFM:</td>[/tr]</table>
 
I

isqoff

по третьей задаче : сделал только часть(первую с выводом таблицы символов),а со второй не много не понятно...поподробнее или рисунок...
 
I

isqoff

вот вторая :
Код:
uses crt;
const
glasn = ('AaEeIiOoUuАаЕеЁёИиОоУуЫыЭэЮюЯя');
soglasn = ('BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxYyZz'+
'БбВвГгДдЖжЗзЙйКкЛлМмНнПпРрСсТтФфХхЦцЧчШшЩщ');

var i,j,sum_glasn,sum_soglasn:integer;
s:string;

BEGIN
write('Введите строку :');
readln(s);

{---------------- подсчитаем сколько у нас гласных букв ----------------------}
for i:=1 to length(s) do
for j:=1 to length(glasn) do
if s[i] = glasn[j]
then sum_glasn:=sum_glasn+1;

{--------------- подсчитаем сколько у нас согласных букв ---------------------}

for i:=1 to length(s) do
for j:=1 to length(soglasn) do
if s[i] = soglasn[j]
then sum_soglasn:=sum_soglasn+1;

{-------------- Выводим подсчитанное количество на экран -------------------- }

writeln;
writeln('гласных в слове :',sum_glasn);
writeln;
writeln('согласных в слове :',sum_soglasn);
writeln;

if sum_glasn = sum_soglasn
then write('количество гласных и согласных одинаково!')
else if sum_glasn > sum_soglasn
then write('количество гласных преобладает!')
else write('количество согласных преобладает!')

{-------------------------- THE END. ----------------------------------------}
END.

тока с англ алфавитом надо разобраться вроде w и j - неотносяться ни к гласным ни к согласным...я их в согласные определил...
и ь и ъ знаки тоже "промежуточные".короче с алфавитом разбирайся сам(уж хоть с этим то разберёшься???)
 
H

hosm

SeReGa48 а что с первой - сами разобрались или все же народ "помог"?
isqoff
"гласных" с одним "с" при выводе количества...
во второй - два двойных цикла...
Какой смысл делать два цикла, внутри каждого проходить весь цикл по строке гласных, а потом - по строке согласных? Лично я вижу смысл лишь в том, чтобы написать красивый комментарий (даже два).
Вы боитесь, что человек не поймет?
Символ не может быть одновременно гласным и согласным.
Какой смысл просматривать всю строку гласных/согласных после того, как мы уже определили тип символа?
Имхо, проще через множества. Надеюсь, с русскими символами проблем не будет :)
Код:
uses crt;
const
glasn = ['A','a','E','e','I','i','O','o','U','u','А','а','Е','е',
'Ё','ё','И','и','О','о','У','у','Ы','ы','Э','э','Ю','ю','Я','я'];
soglasn = ['B','b','C','c','D','d','F','f','G','g','H','h','J','j','K','k','L','l','M','m','N','n','P','p','Q','q',
'R','r','S','s','T','t','V','v','W','w','X','x','Y','y','Z','z',
'Б','б','В','в','Г','г','Д','д','Ж','ж','З','з','Й','й','К','к','Л','л','М','м','Н','н','П','п','Р','р',
'С','с','Т','т','Ф','ф','Х','х','Ц','ц','Ч','ч','Ш','ш','Щ','щ'];

var i,j,sum_glasn,sum_soglasn:integer;
s:string;

BEGIN
write('Введите строку :');
readln(s);
for i:=1 to length(s) do
if s[i] in glasn 
then inc(sum_glasn) 
else
if s[i] in soglasn 
then inc(sum_soglasn);
{-------------- Выводим подсчитанное количество на экран -------------------- }
и т.д.
 
I

isqoff

ну во первых это вам для поднятия вашего грамматического уровня
а во вторых : задача решена(а сколько людей - столько мнений).
в третьих : в условии не указано каким методом нужно было решать(я посчитал что мой проще...(честно - не подумал про множества :D ))

Добавлено: пардон на первое высказывание, не заметил два "с" ,уже исправил (опечатка с каждым бывает...)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!