• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Студентам. Помощь в программировании

  • Автор темы Автор темы Matrix
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
Вод имеется код задачи для односвязного линейного помогите пожалуйсто переделать его в кольцевой

Код:
uses crt;
type
TList = ^List;
List = record
znach : integer;
Next: TList;
end;
procedure CreateList(var L: TList);
begin
L := nil;
end;
procedure DeleteList(var L: TList);
var
L1, L2: TList;
begin
if L = nil then exit;
if L^.Next = L
then begin
Dispose(L);
exit;
end;
L2 := L;
L := L^.Next;
while L <> L2 do
begin
L1 := L;
L := L^.Next;
Dispose(L1);
end;
Dispose(L2);
end;
procedure AddToList(var L: TList; S : integer);
var
L1, L2: TList;
begin
L1 := L;
if L1 = nil
then begin
new(L1);
L1^.Znach := S;
L := L1;
L^.Next := L;
exit;
end;
while L1^.Next <> L do
L1 := L1^.Next;

new(L2);
L2^.Znach := S;
L2^.Next := L;
L1^.Next := L2;
end;
procedure OutList(L: TList);
var
L1: TList;
begin
if L = nil then exit;
Writeln(L^.Znach);
L1 := L^.Next;
while L1 <> L do
begin
Writeln(L1^.Znach);
L1 := L1^.Next;
end;
end;
var
ListExample: TList;
i: integer;
begin
clrscr;
CreateList(ListExample);

writeln('Введите числа!0 - конец ввода');
read(i);
while i<>0 do
begin
AddToList(ListExample,i);
read(i);
end;

writeln;
OutList(ListExample);
readln;
readln;
end.
 
Strawberry Prolog

Три миссионера и три каннибала хотят переправиться с левого берега на правый. Как это сделать за минимальное число шагов, если в их распоряжении имеется трехместная лодка и ни при каких обстоятельствах (в лодке или на берегу) миссионеры не должны оставаться в меньшинстве.

Вот результаты нашей работы:

/*3 kannibala*/
move(state(X,X,X,M1,M2,M3),state(Y,Y,Y,M1,M2,M3)):-opposite(X,Y).

/*1 missioner*/
move(state(K1,K2,K3,X,M2,M3),state(K1,K2,K3,Y,M2,M3)):-opposite(X,Y).
move(state(K1,K2,K3,M1,X,M3),state(K1,K2,K3,M1,Y,M3)):-opposite(X,Y).
move(state(K1,K2,K3,M1,M2,X),state(K1,K2,K3,M1,M2,Y)):-opposite(X,Y).

/*2 missionera*/
move(state(K1,K2,K3,X,X,M3),state(K1,K2,K3,Y,Y,M3)):-opposite(X,Y).
move(state(K1,K2,K3,M1,X,X),state(K1,K2,K3,M1,Y,Y)):-opposite(X,Y).
move(state(K1,K2,K3,X,M2,X),state(K1,K2,K3,Y,M2,Y)):-opposite(X,Y).

/*3 missionera*/
move(state(K1,K2,K3,X,X,X),state(K1,K2,K3,Y,Y,Y)):-opposite(X,Y).

/*1 kannibal, 1 missioner*/
move(state(X,K2,K3,X,M2,M3),state(Y,K2,K3,Y,M2,M3)):-opposite(X,Y).
move(state(K1,X,K3,X,M2,M3),state(K1,Y,K3,Y,M2,M3)):-opposite(X,Y).
move(state(K1,K2,X,X,M2,M3),state(K1,K2,Y,Y,M2,M3)):-opposite(X,Y).
move(state(X,K2,K3,M1,X,M3),state(Y,K2,K3,M1,Y,M3)):-opposite(X,Y).
move(state(K1,X,K3,M1,X,M3),state(K1,Y,K3,M1,Y,M3)):-opposite(X,Y).
move(state(K1,K2,X,M1,X,M3),state(K1,K2,Y,M1,Y,M3)):-opposite(X,Y).
move(state(X,K2,K3,M1,M2,X),state(Y,K2,K3,M1,M2,Y)):-opposite(X,Y).
move(state(K1,X,K3,M1,M2,X),state(K1,Y,K3,M1,M2,Y)):-opposite(X,Y).
move(state(K1,K2,X,M1,M2,X),state(K1,K2,Y,M1,M2,Y)):-opposite(X,Y).

/*1 kannibal, 2 missionera*/
move(state(X,K2,K3,X,X,M3),state(Y,K2,K3,Y,Y,M3)):-opposite(X,Y).
move(state(X,K2,K3,M1,X,X),state(Y,K2,K3,M1,Y,Y)):-opposite(X,Y).
move(state(X,K2,K3,X,M2,X),state(Y,K2,K3,Y,M2,Y)):-opposite(X,Y).
move(state(K1,X,K3,X,X,M3),state(Y,K2,K3,Y,Y,M3)):-opposite(X,Y).
move(state(K1,X,K3,M1,X,X),state(K1,Y,K3,M1,Y,Y)):-opposite(X,Y).
move(state(K1,X,K3,X,M2,X),state(K1,Y,K3,Y,M2,Y)):-opposite(X,Y).
move(state(K1,K2,X,X,X,M3),state(K1,K2,Y,Y,Y,M3)):-opposite(X,Y).
move(state(K1,K2,X,M1,X,X),state(K1,K2,Y,M1,Y,Y)):-opposite(X,Y).
move(state(K1,K2,X,X,M2,X),state(K1,K2,Y,Y,M2,Y)):-opposite(X,Y).

opposite(east,west).
opposite(west,east).

/*2 kannibala, 1 missioner*/
unsafe(state(X,X,Y,X,Y,Y)):-opposite(X,Y).
unsafe(state(Y,X,X,X,Y,Y)):-opposite(X,Y).
unsafe(state(X,Y,X,X,Y,Y)):-opposite(X,Y).
unsafe(state(X,X,Y,Y,X,Y)):-opposite(X,Y).
unsafe(state(Y,X,X,Y,X,Y)):-opposite(X,Y).
unsafe(state(X,Y,X,Y,X,Y)):-opposite(X,Y).
unsafe(state(X,X,Y,Y,Y,X)):-opposite(X,Y).
unsafe(state(Y,X,X,Y,Y,X)):-opposite(X,Y).
unsafe(state(X,Y,X,Y,Y,X)):-opposite(X,Y).
/*3 kannibala, 1 missioner*/
unsafe(state(X,X,X,X,Y,Y)):-opposite(X,Y).
unsafe(state(X,X,X,Y,X,Y)):-opposite(X,Y).
unsafe(state(X,X,X,Y,Y,X)):-opposite(X,Y).
/*3 kannibala, 2 missionera*/
unsafe(state(X,X,X,X,X,Y)):-opposite(X,Y).
unsafe(state(X,X,X,Y,X,X)):-opposite(X,Y).
unsafe(state(X,X,X,X,Y,X)):-opposite(X,Y).
path(S,G,L,L1):-
move(S,S1),
not(unsafe(S1)),
not(member(S1,L)),
path(S1,G,[S1|L],L1),!.
path(G,G,T,T):-!. /*The final state is reached*/

go:-go(state(east,east,east,east),state(west,west,west,west)).

go(S,G):-
path(S,G,,L),nl,write("A solution is: "),nl,write_path(L),fail.
go(_,_).

member(X,[X|_]).
member(X,[_|L]):-member(X,L).

/*1 kannibal*/
write_move(state(X,K2,K3,M1,M2,M3),state(Y,K2,K3,M1,M2,M3)):-!,
write("The 1 kannibal crosses the river from "),
write(X),
write(" to "),
write(Y),nl.
write_move(state(K1,X,K3,M1,M2,M3),state(K1,Y,K3,M1,M2,M3)):-!,
write("The 1 kannibal crosses the river from "),
write(X),
write(" to "),
write(Y),nl.
write_move(state(K1,K2,X,M1,M2,M3),state(K1,K2,Y,M1,M2,M3)):-!,
write("The 1 kannibal crosses the river from "),
write(X),
write(" to "),
write(Y),nl.

/*2 kannibala*/
write_move(state(X,X,K3,M1,M2,M3),state(Y,Y,K3,M1,M2,M3)):-!,
write("The 1 kannibal takes the 1 kannibala from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,X,M1,M2,M3),state(K1,Y,Y,M1,M2,M3)):-!,
write("The 1 kannibal takes the 1 kannibala from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(X,K2,X,M1,M2,M3),state(Y,K2,Y,M1,M2,M3)):-!,
write("The 1 kannibal takes the 1 kannibala from "),
write(X),
write(" of the river to "),
write(Y),nl.

/*3 kannibala*/
write_move(state(X,X,X,M1,M2,M3),state(Y,Y,Y,M1,M2,M3)):-!,
write("The 3 kannibala crosses the river from "),
write(X),
write(" to "),
write(Y),nl.

/*1 kannibal, 1 missioner*/
write_move(state(X,K2,K3,X,M2,M3),state(Y,K2,K3,Y,M2,M3)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,X,M2,M3),state(K1,Y,K3,M1,Y,M3)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,X,M2,M3),state(K1,K2,Y,M1,M2,Y)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(X,K2,K3,M1,X,M3),state(Y,K2,K3,M1,Y,M3)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,M1,X,M3),state(K1,Y,K3,M1,Y,M3)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,M1,X,M3),state(K1,K2,Y,M1,Y,M3)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(X,K2,K3,M1,M2,X),state(Y,K2,K3,M1,M2,Y)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,M1,M2,X),state(K1,Y,K3,M1,M2,Y)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,M1,M2,X),state(K1,K2,Y,M1,M2,Y)):-!,
write("The 1 kannibal takes the 1 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.



/*1 kannibal, 2 missionera*/
write_move(state(X,K2,K3,X,X,M3),state(Y,K2,K3,Y,Y,M3)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(X,K2,K3,M1,X,X),state(Y,K2,K3,M1,Y,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(X,K2,K3,X,M2,X),state(Y,K2,K3,Y,M2,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,X,X,M3),state(Y,K2,K3,Y,Y,M3)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,M1,X,X),state(K1,Y,K3,M1,Y,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,X,K3,X,M2,X),state(K1,Y,K3,Y,M2,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,X,X,M3),state(K1,K2,Y,Y,Y,M3)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,M1,X,X),state(K1,K2,Y,M1,Y,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.
write_move(state(K1,K2,X,X,M2,X),state(K1,K2,Y,Y,M2,Y)):-!,
write("The 1 kannibal takes the 2 missionera from "),
write(X),
write(" of the river to "),
write(Y),nl.




write_path([H1,H2|T]):-!,
write_move(H1,H2),write_path([H2|T]).
write_path(_).

?-go.

Ответ почему-то выдает просто Yes... Помогите пожалуйста, буду очень признательна. :)
Правильный ответ вот такой: Первыми пересекают реку миссионер и каннибал. После этого миссионер возвращается. Затем пересекают реку два каннибала. Один из них возвращается. Потом два миссионера пересекают реку. Миссионер и каннибал возвращаются. Два миссионера пересекают реку. Один каннибал возвращается. Два каннибала пересекают реку. Один каннибал возвращается. Два оставшихся каннибала пересекают реку.
 
Последнее редактирование:
Привет всем! Помогите пожалста!

Язык - PASKAL
Задание такое : Вычислить значение функции Y(x). Значения переменных a и x должен задавать пользователь.
Вид функция : Ссылка удалена

Нужна программа и блок схема
Заранее Огроомное спасибо!
 
Последнее редактирование модератором:
Язык - PASKAL
Задание такое : Вычислить значение функции Y(x). Значения переменных a и x должен задавать пользователь.
Вид функция : Ссылка удалена

Нужна программа и блок схема
Заранее Огроомное спасибо!

Программу - пожалуйста:

VAR
a,x,Y:REAL;

Function Tan(x:REAL):Real;
BEGIN
Tan:=Sin(x)/Cos(x);
END;

BEGIN
Write('a = '); Readln(a);
Write('x = '); Readln(x);

IF x>1/SQR(a) THEN Y:=SQR(Tan(x))*SQRT(Ln(a)) ELSE
Y:=Sin(x)+Ln(a);
WriteLn('Y = ', Y);
ReadLn;
END.

А вот с блок-схемой, извините, помочь не могу. Никогда ими не интересовался.
 
Последнее редактирование:
Помогите пожалуйста с задачей) заранее очень благодарен.

Задание: написать на "Си", модуль для операций с таблицей переменных (на основе кэш таблицы), использовать алгоритм elf.
модуль должен выполнять операции:
1) получить переменную по её имени;
2) установить значение переменной по её имени.

в универе делаем все на dev_cpp...
 
Помогите решить пожалуйста...Задачка на паскале!
Указатели и списки
Упорядочить элементы динамического списка по возрастанию.

Заранее огромное спасибо...
 
Здраствуйте я не могу решить задачу на Delphi,помогите пожалуйста!!!

Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (число очков, набранных в игре: 2 – выигрыш, 1 – ничья, 0 – проигрыш). Определить номера команд, проведших чемпионат без поражений.

помогите ,очень нужно....заранее благодарен
 
Здраствуйте я не могу решить задачу на Delphi,помогите пожалуйста!!!

Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (число очков, набранных в игре: 2 – выигрыш, 1 – ничья, 0 – проигрыш). Определить номера команд, проведших чемпионат без поражений.

помогите ,очень нужно....заранее благодарен

Попробую. Правда это будет скорее Паскаль, нежели Делфи, но уж чем богаты. Программу сохраните в виде *.dpr, должна пойти.
Поскольку в Делфи нет консольного ввода и вывода, а программировать окно мне недосуг, будем считать, что исходная матрица сидит в файле 'InP', и в файл же ('OutP') выводим результат.

CONST
N = 10;
VAR
A:ARRAY[1..N,1..N] of BYTE;
B:ARRAY[1..N] of BYTE;
i,j,p:BYTE;
f:TEXTfile;

BEGIN
AssignFile(f,'InP');
ReSet(f);
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
Read(f, A[i,j]);
ReadLn(f);
END;
CloseFile(f);

AssignFile(f,'OutP');
ReWrite(f);
WriteLn(f,'Team numbers are:');
FOR i:=1 TO N DO
BEGIN
p:=0;
FOR j:=1 TO N DO
IF A[i,j]=0 THEN INC(p);
IF p=1 THEN Write(f, i:4);
END;
Writeln(f);
CloseFile(f);
END.
 
Извините меня, но я почему-то не нашел кнопки редактирования.. :(

Ребят, помоите пожалуйста еще с несколькими прогами (язык програмирования Паскаль):

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

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

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

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

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

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

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

8. Вычислить и вывести на экран в виде таблицы значения функции, заданной с по¬мощью ряда Тейлора, на интервале от хнач до xкон с шагом dx с точностью е. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содер¬жать значение аргумента, значение функции и количество просуммированных членов ряда. Номер варианта задания равен номеру компьютера.

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

CONST
N=10;
VAR
A:ARRAY[1..N] of REAL;
B:ARRAY[1..N+1] of REAL;
Min:REAL;
i,j,Ncur,Nmin:INTEGER;

BEGIN
Randomize;
FOR i:=1 TO N DO
BEGIN
A:=(Random-0.5)*10;
B:=A;
END;
Min:=A[1];
Nmin:=1;
FOR i:=2 TO N DO
IF A<Min THEN
BEGIN
Min:=A;
Nmin:=i
END;
WriteLn('Nmin = ',Nmin:2);
i:=1;
Ncur:=N;
REPEAT
IF ABS(B)>1 THEN
BEGIN
B[N+1]:=B;
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:5:2,' ');
Writeln;
FOR i:=1 TO N DO
Write(B:5:2,' ');
Writeln;
ReadLn;
END.
 
2. Размерности массивов следует задать именованными константами.
Задание:
Дана целочисленная прямоугольная матрица. Определить:
1. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрица¬тельный элемент.
2. Найти номер первого из столбцов, не содержащих ни одного положительного элемента.

CONST
N=8;
M=10;
VAR
A:ARRAY[1..N,1..M] of INTEGER;
ColNum,ColSum:ARRAY[1..M] of INTEGER;
i,j,Ncur,p,Number_Neg, Number_Pos:INTEGER;

BEGIN
Randomize;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
A[i,j]:=Random(100)-50;

Number_Neg:=0;
FOR j:=1 TO M DO
BEGIN
p:=0;
i:=0;
REPEAT
INC(i);
IF A[i,j]<0 THEN p:=1;
UNTIL (p=1) OR (i=N);
IF p=1 THEN
BEGIN
INC(Number_Neg);
ColNum[Number_Neg]:=j;
ColSum[Number_Neg]:=0;
FOR i:=1 TO N DO
ColSum[Number_Neg]:=ColSum[Number_Neg]+A[i,j];
END;
END;

Number_Pos:=0;
j:=0;
REPEAT
INC(j);
p:=0;
FOR i:=1 TO N DO
IF A[i,j]>0 THEN p:=1;
IF p=0 THEN Number_Pos:=j;
UNTIL (p=0) OR (j=M);

FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
Write(A[i,j]:4);
Writeln;
END;

Write('Column number ');
FOR i:=1 TO Number_Neg DO
Write(ColNum:6);
Writeln;
Write(' Column Sums ');
FOR i:=1 TO Number_Neg DO
Write(ColSum:6);
Writeln;

IF Number_Pos=0 THEN
WriteLn('The matrix contains no negative columns') ELSE
Writeln('First negative column number is ',Number_Pos:2);
ReadLn;
END.
 
3.Задана строка символов.
Задание:
определить длину самого короткого слова.

CONST
Max_Number_of_Words=200;
VAR
L:ARRAY[1..Max_Number_of_Words] of BYTE;
i,Number_of_Words,Min_Lng: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);

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
WriteLn(file_interm);
Ch_bef:=Ch_aft;
UNTIL EOLN(file_inp);
Close(file_inp);
Close(file_interm);
ReSet(file_interm);
i:=0;
REPEAT
INC(i);
ReadLn(file_interm, S);
L:=Length(S);
UNTIL EoF(file_interm);
Close(file_interm);
Erase(file_interm);
Number_Of_Words:=i;
Min_Lng:=255;
FOR i:=1 TO Number_Of_Words DO
IF L<Min_Lng THEN Min_Lng:=L;
Writeln('The shortest word length is ', Min_Lng);
Readln;
END.

Анализируемая строка должна находится в файле с именем "x1". Впрочем, имена файлов и пути можно изменить. Файл "х2" - временный.
 
8. Вычислить и вывести на экран в виде таблицы значения функции, заданной с по¬мощью ряда Тейлора, на интервале от хнач до xкон с шагом dx с точностью е. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содер¬жать значение аргумента, значение функции и количество просуммированных членов ряда. Номер варианта задания равен номеру компьютера.

Задание:

CONST
ACC=3;
VAR
x1,x2,Step,x,y:REAL;
Nt: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;

PROCEDURE ATG(Xa:REAL; VAR AT:REAL; VAR AN:INTEGER);
VAR
SUM, a:REAL;
i:INTEGER;
BEGIN
SUM:=Pi/2;
i:=-1;
REPEAT
INC(i);
a:=X2np(-1,i+1)/(2*i+1)/X2np(Xa,(2*i+1));
SUM:=SUM+a;
UNTIL ABS(a)<1/X2np(10,ACC+1);
AT:=SUM;
AN:=i+1;
END;

BEGIN
Write('x1 = ');
ReadLn(x1);
Write('x2 = ');
ReadLn(x2);
Write('Step = ');
ReadLn(Step);
Writeln('Argument',' Result ', 'Number of terms ', ' Arctan ');
x:=x1-Step;
REPEAT
x:=x+Step;
ATG(x,y,Nt);
Writeln(x:7:4,y:8:4,Nt:12,Arctan(x):12:4);
UNTIL x>x2;
ReadLn;
END.

Константа АСС - количество значащих цифр после запятой. В последней колонке для сравнения выводится точное значение функции арктангенс.
 
найти сумму элементов расположенных ниже главной диагонали матрицы
 
найти сумму элементов расположенных ниже главной диагонали матрицы

Const n=5;
Var a:array[1..n,1..n] of integer;
i,j,S:integer;
BEGIN
S:=0;
For i:=1 to n do
begin
For j:=1 to n do
readln(a[i,j]);
end;
For i:=2 to n do
begin
For j:=1 to n do
If (i=j+1)or(i=j+2)or(i=j+3)or(i=j+4) then S:=S+a[i,j];
end;
writeln('S=',S);
END.
 
Это первое, что пришло мне в голову))) Но программу я обязательно доработаю.
 
Это первое, что пришло мне в голову))) Но программу я обязательно доработаю.

Маша, но ведь вся эта цепочка просто эквивалентна if i>j !

Решение, конечно, правильное, и даже в чем-то оригинальное, но не проще ли так:
Вместо
For j:=1 to n do
If (i=j+1)or(i=j+2)or(i=j+3)or(i=j+4) then S:=S+a[i,j];
задать цикл по столбцам в виде:
For j:=1 to i-1 do S:=S+a[i,j];
 
Задание: написать на "Си", модуль для операций с таблицей переменных (на основе кэш таблицы), использовать алгоритм elf.
модуль должен выполнять операции:
1) получить переменную по её имени;
2) установить значение переменной по её имени.

1. ХЕШ-таблица?
2. "Получить переменную по ёё имени" в этом задании значит "получить адрес переменной по ёё имени"?
 
Три миссионера и три каннибала хотят переправиться с левого берега на правый. Как это сделать за минимальное число шагов, если в их распоряжении имеется трехместная лодка и ни при каких обстоятельствах (в лодке или на берегу) миссионеры не должны оставаться в меньшинстве.

Вот результаты нашей работы:

...

Ответ почему-то выдает просто Yes... Помогите пожалуйста, буду очень признательна. :)
Правильный ответ вот такой: Первыми пересекают реку миссионер и каннибал. После этого миссионер возвращается. Затем пересекают реку два каннибала. Один из них возвращается. Потом два миссионера пересекают реку. Миссионер и каннибал возвращаются. Два миссионера пересекают реку. Один каннибал возвращается. Два каннибала пересекают реку. Один каннибал возвращается. Два оставшихся каннибала пересекают реку.

Код:
go:-go(state(east,east,east,east),state(west,west,west ,west)).
тут всего четыре позиции...а человек всего шесть и остальная часть программы построена на шесть позиций, поэтому как-то так:
Код:
go:-go(state(east,east,east,east,east,east),state(west,west,west ,west,west,west)).

В результате считает довольно долго, но вроде считает...Хотя может и зациклился. Посмотрим.
Как досчитает - напишу результат выполнения, совпал ли он с правильным.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху