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


Закрытая тема
 
Опции темы Опции просмотра
Старый 10.05.2009, 13:02   #11 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Цитата:
1. Разработать программу, реализующую алгоритм вычисления суммы бесконечного ряда с точностью до 10^(-4). Программу представить с использованием оператора цикла WHILE
ln(x)=(x-1)/x+(x-1)2/2x2+(x-1)3/3x3+...
x>1/2
VAR
x,S,a:REAL;
k:INTEGER;

FUNCTION X2np(X:Extended; n:INTEGER):Extended;
Var i:INTEGER;
Y:Extended;
BEGIN
IF n=0 THEN X2np:=1 ELSE
IF n=1 THEN X2np:=X ELSE
BEGIN
Y:=X;
FOR i:=2 TO n DO Y:=Y*X;
X2np:=Y;
END;
END;

BEGIN
Write('x (>0.5) = ');
ReadLn(x);
a:=1;
k:=0;
S:=0;
WHILE ABS(a)>1E-6 DO
BEGIN
INC(k);
a:=X2np((x-1),k)/k/X2np(x,k);
S:=S+a;
END;
Writeln('S = ', S:10:7);
Writeln('Ln(x) = ', Ln(x):10:7);
ReadLn;
END.

Здесь ограничение точности взято просто "с запасом". Но если это не устраивает и нужно реально считать остаточный член ряда - напишите, сделаем. Просто дело это изрядно муторное.

Последний раз редактировалось Vladimir_S; 10.05.2009 в 13:13
Vladimir_S вне форума  

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

Я думаю, что проблема получила свое решение по этим ссылкам

Нужна помощь с БП
Помощь с БП от ПК

Старый 10.05.2009, 13:43   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Цитата:
2. Преобразовать массив, расположив сначала все положительные, а затем все отрицательные элементы. Порядок следования элементов одного типа не менять
CONST
N=10;
VAR
A:ARRAY[1..N] of INTEGER;
B:ARRAY[1..N+1] of INTEGER;
i,j,Ncur:INTEGER;

BEGIN
Randomize;
FOR i:=1 TO N DO
BEGIN
A[i]:=Random(100)-50;
B[i]:=A[i];
END;
i:=1;
Ncur:=N;
REPEAT
IF B[i]<0 THEN
BEGIN
B[N+1]:=B[i];
FOR j:=i+1 TO N+1 DO
B[j-1]:=B[j];
DEC(i);
DEC(Ncur);
END;
INC(i);
UNTIL i=Ncur+1;
FOR i:=1 TO N DO
Write(A[i]:4);
Writeln;
FOR i:=1 TO N DO
Write(B[i]:4);
Writeln;
ReadLn;
END.
Vladimir_S вне форума  
Старый 10.05.2009, 13:55   #13 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Цитата:
3. Найти количество нулевых элементов в каждой строке матрицы.
CONST
N=8;
M=10;
VAR
A:ARRAY[1..N,1..M] of INTEGER;
B:ARRAY[1..N] of INTEGER;
i,j,Ncur:INTEGER;

BEGIN
Randomize;
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
A[i,j]:=Random(4)-2;
B[i]:=0;
END;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
IF A[i,j]=0 THEN B[i]:=B[i]+1;
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
Write(A[i,j]:4);
Writeln;
END;
FOR i:=1 TO N DO
WriteLn(B[i]:4);
ReadLn;
END.
Vladimir_S вне форума  
Старый 10.05.2009, 15:10   #14 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Цитата:
4. В одномерном массиве, состоящем из N целых элементов вычислить:
а)сумму элементов массива с четными номерами (оформить в виде функции)
б)произведение жлементов массива, расположенных между 1 и последним нулевыми лементами (оформить в виде процедуры)
Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся элементы в конце массива заполнить нулями
CONST
N=10;
TYPE AR=ARRAY[1..N] of INTEGER;
VAR
A,B:AR;
i,j,Ncur,i1zer,i2zer,Prod:INTEGER;

FUNCTION S_even(AS:AR):INTEGER;
VAR
Scur,i:INTEGER;
BEGIN
Scur:=0;
FOR i:=1 TO N DO
IF (i mod 2)=0 THEN
Scur:=Scur+AS[i];
S_even:=Scur;
END;

PROCEDURE Product(AP:AR;i1p,i2p:Integer; VAR Pr:INTEGER);
VAR
Pr_cur,i:INTEGER;
BEGIN
Pr_cur:=0;
IF i1p=0 THEN
WriteLn('Array contains no zero elements') ELSE
IF i1p=i2p THEN
WriteLn('Array contains only one zero element') ELSE
BEGIN
Pr_cur:=1;
FOR i:=i1p+1 TO i2p-1 DO
Pr_cur:=Pr_cur*AP[i];
END;
Pr:=Pr_cur;
END;

BEGIN
Randomize;
FOR i:=1 TO N DO
BEGIN
A[i]:=Random(6)-3;
B[i]:=A[i];
END;
i1zer:=0;
i2zer:=0;
i:=1;
REPEAT
IF A[i]=0 THEN i1zer:=i;
INC(i);
UNTIL (i1zer>0) OR (i=N+1);
i:=N;
REPEAT
IF A[i]=0 THEN i2zer:=i;
DEC(i);
UNTIL (i2zer>0) OR (i=0);

i:=1;
Ncur:=N;
REPEAT
IF ABS(B[i])<=1 THEN
BEGIN
FOR j:=i+1 TO N DO
B[j-1]:=B[j];
B[N]:=0;
DEC(i);
DEC(Ncur);
END;
INC(i);
UNTIL i=Ncur+1;
FOR i:=1 TO N DO
Write(A[i]:4);
Writeln;
Writeln('Sum of even elements is ', S_even(A));
Product(A,i1zer,i2zer,Prod);
IF (i1zer>0) AND (i1zer<i2zer) THEN
Writeln('Product of elements between first and last zero is ',Prod);
FOR i:=1 TO N DO
Write(B[i]:4);
Writeln;
ReadLn;
END.
Vladimir_S вне форума  
Старый 10.05.2009, 21:17   #15 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Цитата:
5.Определить количество слов в каждой строке. Удалить все слова BEGIN в каждой строке. (работа с файлами, обработка текст идет из внешнего файла, результаты также поместить в файл, для обработки текста использовать строковые функции).
CONST
Max_Number_of_Strings=1000;
VAR
A:ARRAY[1..Max_Number_of_Strings] of INTEGER;
i,j,Number_of_Strings:INTEGER;
file_inp, file_out, file_interm, file_inf:TEXT;
Ch_bef,Ch_aft:Char;
S:STRING;

BEGIN
Assign(file_inp,'D:\x1');
ReSet(file_inp);
Assign(file_interm,'D:\x2');
ReWrite(file_interm);
Assign(file_out,'D:\x3');
ReWrite(file_out);
Assign(file_inf,'D:\inf');
ReWrite(file_inf);
FOR i:=1 TO Max_Number_of_Strings DO
A[i]:=0;
Number_of_Strings:=1;
REPEAT
Ch_bef:=' ';
REPEAT
Read(file_inp, Ch_aft);
IF ((Ch_bef=' ') AND (Ch_aft<>' ')) OR
((Ch_bef<>' ') AND (Ch_aft<>' ')) OR
((Ch_bef<>' ') AND (Ch_aft=' ')) THEN
Write(file_interm, Ch_aft);
IF ((Ch_bef<>' ') AND (Ch_aft=' ')) OR (EOLN(file_inp)) THEN
BEGIN
WriteLn(file_interm);
INC(A[Number_of_Strings]);
END;
Ch_bef:=Ch_aft;
UNTIL EOLN(file_inp);
ReadLn(file_inp);
INC(Number_of_Strings);
UNTIL EoF(file_inp);

WriteLn(file_inf,'Number of string Number of words');
FOR i:=1 TO Number_Of_Strings DO
WriteLn(file_inf,i:10,A[i]:24);

Close(file_inf);
Close(file_inp);
Close(file_interm);
ReSet(file_interm);
FOR i:=1 TO Number_Of_Strings DO
BEGIN
FOR j:=1 TO A[i] DO
BEGIN
Readln(file_interm, S);
IF S<>'BEGIN' THEN
Write(file_out,S+' ');
END;
WriteLn(file_out);
END;
Close(file_interm);
Erase(file_interm);
Close(file_out);
END.

Некоторые пояснения. К сожалению, не удалось толком обработать пустые строки, поэтому в исходном файле их быть не должнО. х1, х3 - имена исходного и конечного (с исключенными "BEGIN") файлов, нужные введете сами, равно как и пути к ним. х2 - промежуточный файл, в конце программы он уничтожается. Информация о количестве слов в строках выводится в файл "inf".
Vladimir_S вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 10.05.2009, 22:20   #16 (permalink)
Tamerlaan_Sg
Новичок
 
Регистрация: 26.03.2009
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Огромное Вам спасибо
Tamerlaan_Sg вне форума  
Старый 12.05.2009, 01:40   #17 (permalink)
аццкий программист
Новичок
 
Регистрация: 12.05.2009
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

плизз товарищи срочно нужна ваша помощ мне ету задачу неодолеть(((
помогите плизз нужно до завтра сделать оч надеюсь на ваше содействие((((((
условие:
Разработать алгоритм и программу решения задачи, в которой сформировать кольцевой односвязный список.
аццкий программист вне форума  
Старый 12.05.2009, 09:39   #18 (permalink)
csbwalker
Member
 
Аватар для csbwalker
 
Регистрация: 03.03.2009
Сообщений: 87
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 187
По умолчанию

Цитата:
Сообщение от аццкий программист Посмотреть сообщение
плизз товарищи срочно нужна ваша помощ мне ету задачу неодолеть(((
помогите плизз нужно до завтра сделать оч надеюсь на ваше содействие((((((
условие:
Разработать алгоритм и программу решения задачи, в которой сформировать кольцевой односвязный список.
Ну, алгоритм-то можно и так, а вот с программой - какой язык (или языки) необходимо использовать?
csbwalker вне форума  
Старый 12.05.2009, 10:22   #19 (permalink)
аццкий программист
Новичок
 
Регистрация: 12.05.2009
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

соре забыл указать моя задачка пишеться на Паскаль(((жду помощи (((
аццкий программист вне форума  
Старый 13.05.2009, 00:30   #20 (permalink)
Tranzistor
Специалист
 
Аватар для Tranzistor
 
Регистрация: 17.07.2007
Адрес: Мордовия
Сообщений: 874
Сказал(а) спасибо: 16
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 4825
По умолчанию

Ребят, помоите пожалуйста еще с несколькими прогами:

1. Размерность массива задается именованной константой.
Задание:
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1.Номер минимального элемента массива.
2.Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает единицу, а потом — все остальные.

2. Размерности массивов следует задать именованными константами.
Задание:
Дана целочисленная прямоугольная матрица. Определить:
1. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрица¬тельный элемент.
2. Найти номер первого из столбцов, не содержащих ни одного положительного элемента.

3.Задана строка символов.
Задание:
определить длину самого короткого слова.

4. Создайте список с указанием ваших фамилий, имён, телефонных номеров и дат рождения (число, месяц, год). Использовать тип запись (RECORD), вывести в удобном для просмотра формате.

5. Из множества целых чисел [1..100] выделить следующие множества:
делящихся без остатка на 10

6. Оформить решение задачи (см. пункт 1. в данном посте) в виде подпрограммы функции. Привести решения этих задач различными способами, используя в качестве фактических параметров: параметры-значения, параметры-переменные и параметры-константы. Объясните различия.

7. Оформить решение задач (см. пункт 2. в данном посте) в виде подпрограммы процедуры. Привести решения этих задач различными способами, используя в качестве фактических параметров: параметры-значения, параметры-переменные и параметры-константы. Объясните различия.

Язык программирования укажите - тогда помогут. Ваш модератор
Tranzistor вне форума  
Ads

Яндекс

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

Метки
задачи по информатике, помощь, решение задач, студент

Опции темы
Опции просмотра

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

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




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

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