Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 19.12.2015, 17:10   #1 (permalink)
EVO_X
Member
 
Регистрация: 26.01.2013
Сообщений: 946
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 497
По умолчанию Помогите с контрольными по программированию на Паскале

Здравствуйте, помогите сделать контрольные на паскале, если можно с пояснениями. Нужно для допуска к зачету.
Миниатюры
4.png   5.png   6.png  
EVO_X вне форума   Ответить с цитированием

Старый 19.12.2015, 17:10
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данная тема уже обсуждалась ранее и возможно решена

Задание по программированию в Pascal. Строки
Чемпионат мира по программированию 2014
Хочу научиться программированию микроконтроллеров

Старый 19.12.2015, 19:50   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от EVO_X Посмотреть сообщение
Здравствуйте, помогите сделать контрольные на паскале, если можно с пояснениями. Нужно для допуска к зачету.
Интересно, что Вы будете делать на зачете... ну да Вам видней. Насчет пояснений - спрашивайте, если что-то непонятно будет.

Первое задание. Программа содержит обе подпрограммы (функцию и процедуру)
Код:
Var
 n:Byte;

Function Test3(M:Byte):Boolean;
var
 M1,Sum:Byte;
begin
 M1:=M;
 Sum:=0;
 repeat
  Sum:=Sum+(M1 mod 10);
  M1:=M1 div 10;
 until M1=0;
 Test3:=(Sum mod 3)=0;
end;

Procedure Print_Triangle(M:Byte);
var
 i,j:Byte;
begin
 for i:=1 to M do
  begin
   for j:=1 to i do write(j:4);
   writeln;
  end;
end;

Begin
 Write('n = ');
 Readln(n);
 Writeln(Test3(n));
 Writeln;
 Print_Triangle(n);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2015, 21:23   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Второе задание. Тоже обе программы объединены:
Код:
Const
 M=10;
 N=12;

Var
 A:Array[1..M] of Byte;
 B:Array[1..M,1..N] of Byte;
 i,j,Num:Byte;

Begin
 Randomize;
 for i:=1 to M do
  begin
   A[i]:=Random(256);
   write(A[i]:4);
  end;
 Writeln;
 Writeln;
 Writeln(' i     A[i]');
 Num:=0;
 for i:=2 to M-1 do
  if A[i]<(A[i-1]+A[i+1])/2 then
   begin
    Inc(Num);
    Writeln(i:2,A[i]:8);
   end;
 Writeln;
 Writeln(Num, ' elements');
 Writeln('Press "Enter" to continue');
 Readln;

 for i:=1 to M do
  begin
   for j:=1 to N do
    begin
     B[i,j]:=Random(256);
     Write(B[i,j]:4);
    end;
   Writeln;
  end;
 Writeln;
 Writeln;
 Writeln('Minimal elements:');
 Writeln(' i      El');
 for i:=1 to M do
  begin
   A[i]:=B[i,1];
   for j:=2 to N do
    if B[i,j]<A[i] then A[i]:=B[i,j];
   Writeln(i:2,A[i]:8);
  end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2015, 21:43   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Третье задание:
Код:
Const
 Eps=0.00001;
 Nmax=200;

Function S(z:real):Real;
var
 a,Sum:real;
 k:byte;
begin
 k:=0;
 a:=(Pi/2)/3*z*z*z;
 Sum:=a;
 Repeat
  Inc(k);
  a:=-a*Sqr(Pi/2)/(2*k)/(2*k+1)*(4*k-1)/(4*k+3)*Sqr(Sqr(z));
  Sum:=Sum+a;
 Until (Abs(a)<Eps) or (k>Nmax);
 S:=Sum;
end;

Var
 i:Byte;

Begin
 for i:=0 to 10 do
  writeln(0.5*i:3:1,S(0.5*i):12:3);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 20.12.2015, 11:28   #5 (permalink)
EVO_X
Member
 
Регистрация: 26.01.2013
Сообщений: 946
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 497
По умолчанию

Спасибо огромное!!!
С первым понял, вроде. Во втором как я понял в одномерном массиве число символов постоянно и равно 10?
Сделал для задаваемых M и N. остальное тоже вроде пока понятно.
EVO_X вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 20.12.2015, 11:52   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от EVO_X Посмотреть сообщение
Сделал для задаваемых M и N.
Эта косметика - в Вашей власти!
Цитата:
Сообщение от EVO_X Посмотреть сообщение
остальное тоже вроде пока понятно
Ну вот и чудесно.
Vladimir_S вне форума   Ответить с цитированием
Старый 20.12.2015, 11:55   #7 (permalink)
EVO_X
Member
 
Регистрация: 26.01.2013
Сообщений: 946
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 497
По умолчанию

Также нужна программа для вычисления ряда Тейлора для ln(1+x). Мы на парах делали для вычисления sin(x). Но для логарифма у меня так и не получается. Могу скинуть синус в виде примера, чтоб вы поняли, что мне нужно для логарифма.
EVO_X вне форума   Ответить с цитированием
Старый 20.12.2015, 12:04   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от EVO_X Посмотреть сообщение
Также нужна программа для вычисления ряда Тейлора для ln(1+x). Мы на парах делали для вычисления sin(x). Но для логарифма у меня так и не получается. Могу скинуть синус в виде примера, чтоб вы поняли, что мне нужно для логарифма.
Не, не надо синуса. У нас подобных задач рассмотрена куча. Сформулируйте четко задание и лучше выложите свои попытки решения.
Vladimir_S вне форума   Ответить с цитированием
Старый 20.12.2015, 13:02   #9 (permalink)
EVO_X
Member
 
Регистрация: 26.01.2013
Сообщений: 946
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 497
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Сформулируйте четко задание и лучше выложите свои попытки решения.
Вот я не знаю как четко сформулировать, преподаватель из головы сказал что должна делать программа.
Но попробую. Нужно разложить ln(1+x) в ряд Тейлора и найти сумму(вот это я сделал программа считает ее нормально), затем сравнить ее с табличным значением, если все нормально, то делать дальше.
Дальше нужно, при задаваемом отрезке(его начального и конечного значений) и шаге по этому отрезку построить таблицу значений данной функции и записать эти значения в блокнот.
Далее уже собственноручно скопировать эти значения из блокнота и вставить их в эксель и построить график по этим точкам, должен получиться логарифм.

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Не, не надо синуса.
Его в качестве примера хотел показать.
EVO_X вне форума   Ответить с цитированием
Старый 20.12.2015, 13:05   #10 (permalink)
EVO_X
Member
 
Регистрация: 26.01.2013
Сообщений: 946
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 497
По умолчанию

Не знаю как текст программы вставлять, отправляю так свои начала по логарифму.


var n:integer;
a,x,s,lnmy:real;
begin
writeln ('x?');
readln(x);
if not ((x<=1) and (x>-1)) then
writeln('Введенный х не попадает в область значений')
else
begin
a:=x; s:=x; n:=1;
repeat a:=-(a*x*n)/(n+1);
s:=s+a;
n:=n+1;
until abs(a)<1e-7;
lnmy:=s;
writeln ('ln(1+x)=', lnmy,' ',ln(1+x));
end;
end.
EVO_X вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:01.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.