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

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

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

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

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

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

2) Составить две программы на языке программирования высокого уровня (одну с оператором присваивания, перехода, условными; вторую – используя оператор цикла) для вычисления функции.

Извините, уважаемый, но куда тут воткнуть оператор цикла - решительно не вижу! Так что могу предложить только одну программу:

VAR
x,y,t:REAL;

BEGIN
Write('x = '); ReadLn(x);
Write('t = '); ReadLn(t);
IF x<0.5 THEN y:=(Ln(x)*SQR(Ln(x))+x)/SQRT(x+1) ELSE
IF x=0.5 THEN y:=SQRT(x+t+Exp(x)) ELSE
y:=Cos(x)+t*SQR(Sin(x));
WriteLn('y = ',y);
ReadLn;
END.
 
Здравствуйте, помогите пожалуйста с программами на паскале, очень нужны =(:

3) Составить две программы на языке программирования высокого уровня(одну - не используя цикла, другую - используя соответствующий оператор цикла).
Найти сумму ряда:

А вот тут, извините опять же, но как обойтись БЕЗ цикла - в упор не вижу! Так что:

VAR
x, Sum:REAL;
N, i: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;

FUNCTION Nfact(n:Integer):Extended;
VAR
i:Integer;
fact:Extended;
BEGIN
IF n=0 THEN fact:=1 ELSE
BEGIN
fact:=1;
FOR i:=1 TO n DO
fact:=fact*i;
END;
Nfact:=fact;
END;


BEGIN
Write('x = '); ReadLn(x);
Write('N = '); ReadLn(N);
Sum:=0;
FOR i:=1 TO N DO
Sum:=Sum+X2np(-1,i)*X2np(2*x,2*i)/Nfact(2*i);
Write('Sum = ',Sum);
ReadLn;
END.
 
Здравствуйте, помогите пожалуйста с программами на паскале, очень нужны =(:

4) Задан массив. Если первый элемент массива кратен 2, то все элементы массива умножить на квадрат Max, в противном случае – на квадрат Min.

CONST
N=10;
VAR
a,b:ARRAY[1..N] of LongInt;
Min,Max:LongInt;
i:INTEGER;

BEGIN
Randomize;
Max:=0;
Min:=100;
FOR i:=1 TO N DO
BEGIN
a:=RANDOM(99);
IF a>Max THEN Max:=a;
IF a<Min THEN Min:=a;
END;
IF (a[1] mod 2) = 0 THEN
FOR i:=1 TO N DO
b:=a*Max*Max ELSE
FOR i:=1 TO N DO
b:=a*Min*Min;
FOR i:=1 TO N DO
Write(a:7);
WriteLn;
FOR i:=1 TO N DO
Write(b:7);
WriteLn;
ReadLn;
END.
 
Помогите нужно срочно, желательно сегодня.
Задача 1.
Сгенерировать и вывести на экран массив А размером 10x10 из случайных реальных чисел в диапазоне
от 1 до 9. Определить и вывести массив В также размером 10x10 по одному из следующих принципов:
1)элементы главной диагонали определить как суммы по соответствующим строкам;
2)элементы главной диагонали определить как произведение по соответствующим столбцам;
3)элементы главной диагонали определить как произведение по соответствующим строкам и столбцам.
задача 2.
Ввести в массив N условных чисел (N заданное число не более 15). Сформировать новый массив, где все введенные отрицательные числа располагались в его начале, а все положительные сразу за отрицательными (взаимное расположение среди положительных и отрицательных сохраняется). Числа равные нулю отбросить. Вывести на экран 2 строки: элементы исходного массива и элементы нового массива, а также выдать сообщение о количестве удаленных нулей.
 
Автостоянка содержит одну полосу, на которой может быть размещено до 10 автомашин. Машины въезжают с южного конца, а выезжают с северного. Если авто владельца, пришедшего на стоянку забрать его, не расположено севернее всех остальных, то все автомобили, стоящие севернее его, удаляются из гаража, затем выезжает его машина и оставшиеся машины помещаются назад в том же порядке. Если машина покидает гараж, то все машины, расположенные южнее, сдвигаются вперед столько раз, сколько имеется свободных позиций в северной части.
Напишите программу,которая считывает группу строк с оператором data. Каждая строка содержит "A" для прибытия и "D" для отправления, а также номер машины. Предполагается, что машины прибывают и убывают в порядке, задаваемом этим списком строк. Программа должна выдавать сообщение при каждом прибытии или отправлении машины. При прибытии машины в нем должно говориться, имеется ли на стоянке свободное место. Если свободное место отсутствует, машина ждет до тех пор, пока оно не освободится, или до момента считывания строки, требующей отправления данной автомашины. При появлении свободного места должно выдаваться другое сообщение. При отправлении автомашины сообщение должно содержать в себе число перемещений машины внутри гаража (включая ее отъезд, но не прибытие; это число равно нулю, если машина была отправлена во время нахождения в режиме ожидания свободного места).
Помогите, пожалуйста. Pascal
 
Помогите нужно срочно, желательно сегодня.
Задача 1.
Сгенерировать и вывести на экран массив А размером 10x10 из случайных реальных чисел в диапазоне
от 1 до 9. Определить и вывести массив В также размером 10x10 по одному из следующих принципов:
1)элементы главной диагонали определить как суммы по соответствующим строкам;
2)элементы главной диагонали определить как произведение по соответствующим столбцам;
3)элементы главной диагонали определить как произведение по соответствующим строкам и столбцам.


CONST
N=10;
VAR
a,b1,b2,b3:ARRAY[1..N,1..N] of REAL;
i,j:INTEGER;

BEGIN
Randomize;
FOR i:=1 TO N DO
FOR j:=1 TO N DO
a[i,j]:=RANDOM*8+1;
Writeln('Array a:');
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
Write(a[i,j]:7:3);
WriteLn;
END;
Writeln('Press "Enter" to continue...');
ReadLn;
b1:=a;
b2:=a;
b3:=a;
FOR i:=1 TO N DO
b1[i,i]:=0;
FOR i:=1 TO N DO
FOR j:=1 TO N DO
b1[i,i]:=b1[i,i]+b1[i,j];
Writeln('Array b1:');
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
Write(b1[i,j]:7:3);
WriteLn;
END;
Writeln('Press "Enter" to continue...');
ReadLn;
FOR i:=1 TO N DO
b2[i,i]:=1;
FOR i:=1 TO N DO
FOR j:=1 TO N DO
b2[i,i]:=b2[i,i]*b2[i,j];
Writeln('Array b2:');
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
IF i<>j THEN
Write(b2[i,j]:7:3) ELSE
Write(' ',b2[i,j]:5);
Writeln;
END;
Writeln('Press "Enter" to continue...');
ReadLn;
FOR i:=1 TO N DO
b3[i,i]:=1;
FOR i:=1 TO N DO
FOR j:=1 TO N DO
b3[i,i]:=b3[i,i]*b3[i,j]*b3[j,i];
Writeln('Array b3:');
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
IF i<>j THEN
Write(b2[i,j]:7:3) ELSE
Write(' ',b2[i,j]:5);
WriteLn;
END;
ReadLn;
END.
 
Помогите нужно срочно, желательно сегодня.
задача 2.
Ввести в массив N условных чисел (N заданное число не более 15). Сформировать новый массив, где все введенные отрицательные числа располагались в его начале, а все положительные сразу за отрицательными (взаимное расположение среди положительных и отрицательных сохраняется). Числа равные нулю отбросить. Вывести на экран 2 строки: элементы исходного массива и элементы нового массива, а также выдать сообщение о количестве удаленных нулей.
Код:
CONST
 N=10;
VAR
 A:ARRAY[1..N] of INTEGER;
 B:ARRAY[1..N+1] of INTEGER;
 i,j,N1,Ncur,Zero_Num:INTEGER;

BEGIN
 Randomize;
 FOR i:=1 TO N DO
  BEGIN
   A[i]:=Random(8)-4;
   B[i]:=A[i];
  END;
 WriteLn('Initial array:');
 FOR i:=1 TO N DO
  Write(A[i]:4);
 Writeln;
 i:=1;
 N1:=N;
 Zero_Num:=0;
 REPEAT
  IF B[i]=0 THEN
   BEGIN
    IF i<N1 THEN
     FOR j:=i+1 TO N1 DO B[j-1]:=B[j];
    DEC(N1);
    INC(Zero_Num);
   END;
  INC(i);
 UNTIL i=N1+1;
 WriteLn('Array after excluding of ',Zero_Num:2, ' zero elements:');
 FOR i:=1 TO N1 DO
  Write(B[i]:4);
 Writeln;
 Ncur:=N1;
 i:=1;
 REPEAT
  IF B[i]>0 THEN
   BEGIN
    B[N1+1]:=B[i];
    FOR j:=i+1 TO N1+1 DO
     B[j-1]:=B[j];
    DEC(i);
    DEC(Ncur);
   END;
  INC(i);
 UNTIL i=Ncur+1;
 Writeln('Final array:');
 FOR i:=1 TO N1 DO
  Write(B[i]:4);
 Writeln;
 ReadLn;
END.
 
Большое спасибо, а задачу с автостоянкой решить можешь? Её тоже нужно срочно.
 
Если можно, то в ближайшие 2 дня.
 
Большое спасибо, а задачу с автостоянкой решить можешь? Её тоже нужно срочно.

Не, не возьмусь. Я и условия толком не понимаю - это что, что-то типа игры в реальном времени? К тому же там нужно организовывать стек, возиться с указателями, а с этим я не очень... Поскольку сам не пользуюсь за ненадобностью. Так что извини.
 
решил задачку, котрорую постил #76(Преобразование входного массива по правилу: элементы строк с четными (нечетными) номерами увеличить (уменьшить) на вводимую величину переменной А), авось пригодится кому-нибудь
Visual Basic 2005
пишу код процедуры (ввод-вывод кому как нравится)
Public Sub m2(ByRef a(,) As Integer, ByRef strok() As Integer, ByRef lb As ListBox)
Dim i, j, n, t, k, e, w As Integer
Dim y As String = ""
Dim s As String = ""
Dim a2(,) As Integer
Dim stroka, stolb As Integer
stroka = a.GetLength(0)
stolb = a.GetLength(1)
ReDim a2(0 To stroka - 1, 0 To stolb - 1)
For n = 0 To 1
If n = 0 Then
For i = 0 To stroka - 1
For j = 0 To stolb
If j > stolb - 1 And j <> 0 Then
j = 0
Exit For
End If
k = CInt(TextBox3.Text)
If n = 0 Then
t = a(i, j) + k
Else
t = a(i, j) - k
End If
a2(i, j) = t
j = j + 1
Next
Next
j = 1
Else
For i = 0 To stroka - 1
For j = 1 To stolb
If j > stolb - 1 And j <> 0 Then
j = j - 1

End If
k = CInt(TextBox3.Text)
If n = 0 Then
t = a(i, j) + k
Else
t = a(i, j) - k
End If
a2(i, j) = t
j = j + 1
Next
Next
j = 1
End If
Next
lb.Items.Clear()
For e = 0 To stroka - 1
y = ""
For w = 0 To stolb - 1
s = Format(a2(e, w), "00")
If a2(e, w) < 0 Then
s = Space(2) + s
Else
s = Space(3) + s
End If
y = y + s
Next

Next
End Sub
 
Привет всем)))
Помогите пожалуйста решить задачу в языке Turbo C.Для большинства существительных, оканчивающихся на –онок и –енок, множественное число образуется от другой основы. Как правило, это происходит по образцу: цыпленок – цыплята, мышонок – мышата и т.д. В новой основе перед последней буквой т пишется а или я в зависимости от предыдущей буквы: если это шипящая, то – а, иначе – я. Преобразовать по-добные существительные единственного числа в существительные множест-венного числа.
Очень срочно надо!!! Через день экзамен. Заранее благодарна
 
Помогите, пожалуйста, кто-нибудь!!!!!! Задача в паскале..
Нужно определить, является ли введенная грамматика, грамматикой третьего типа и построить по ней конечный автомат!!(тип грамматик определяется по Хомскому)
Хелп, совсем скоро экзамен..три дня осталось...
 
Привет всем)))
Помогите пожалуйста решить задачу в языке Turbo C.Для большинства существительных, оканчивающихся на –онок и –енок, множественное число образуется от другой основы. Как правило, это происходит по образцу: цыпленок – цыплята, мышонок – мышата и т.д. В новой основе перед последней буквой т пишется а или я в зависимости от предыдущей буквы: если это шипящая, то – а, иначе – я. Преобразовать по-добные существительные единственного числа в существительные множест-венного числа.
Очень срочно надо!!! Через день экзамен. Заранее благодарна

Уважаемая Революционерка, что-то СИ-шники молчат, я же (помимо совета штурмовать деканат и установить там новую власть) могу предложить только вот что: взять программу на Паскале и с помощью какой-нибудь из утилит (pas2c и т.п.) попробовать перегнать ее из Паскаля в СИ.

На Паскале так:

VAR
S:STRING;
lng,i:BYTE;
BEGIN
Write('Enter the word: '); ReadLn(S);
lng:=Length(S);
Write('Plural is ');
FOR i:=1 TO lng-4 DO Write(S);
IF (S[lng-4]='ц') OR (S[lng-4]='ч')
OR (S[lng-4]='ш') OR (S[lng-4]='щ') THEN
WriteLn('ата') ELSE WriteLn('ята');
ReadLn;
END.

P.S. Внимательнее с кодировкой кириллицы!
 
2 Vladimir_S

Большое Вам спасибо=))
 
На Паскале нужно!помогите пожалуйста люди добрые решить!не погимаю я этот Паскаль!
вот условие задач:
1. Дан файл, содержащий текст. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.
2. В таблице хранятся следующие данные о студентах определенной группы: фамилия, имя, отчество, рост. Вычислить средний рост студентов, рост са-мого высокого и самого низкого студента. Сколько студентов могут зани-маться в баскетбольной секции, если рост баскетболиста должен быть не менее 170 см?
3. Дан массив, содержащий N элементов. Написать программу с подпрограммой, которая будет выполнять упорядочение элементов массива по возрастанию

Хотя б нужно 1и 3 решить!Заранее огромное спасибо!На Паскале нужно
 
Здрасть!Помогите пожалуйста люди добрые решить НА ПАСКАЛЕ!не погимаю я этот Паскаль!
вот условие задач:
1. Дан файл, содержащий текст. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.
2. В таблице хранятся следующие данные о студентах определенной группы: фамилия, имя, отчество, рост. Вычислить средний рост студентов, рост са-мого высокого и самого низкого студента. Сколько студентов могут зани-маться в баскетбольной секции, если рост баскетболиста должен быть не менее 170 см?
3. Дан массив, содержащий N элементов. Написать программу с подпрограммой, которая будет выполнять упорядочение элементов массива по возрастанию

Хотя б нужно 1и 3 решить!Заранее огромное спасибо
 
Здрасть!Помогите пожалуйста люди добрые решить НА ПАСКАЛЕ!не погимаю я этот Паскаль!
вот условие задач:
1. Дан файл, содержащий текст. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.

Черт возьми, два часа ломал голову! Ну и задачка...

Значит так. Считаем, что в тексте отсутствует форматирование типа абзацев, принудительных переносов строк и т.п. В конце каждого из повторяющихся слов нету запятых, многоточий, вопросительных знаков и др., но в конце последнего из повторяющихся слов может стоять точка или восклицательный знак. Можно и вопросительный. Файлы d1 (исходный), d2 (служебный; в конце программы уничтожается) и d3 (отредактированный) сидят в корневом каталоге диска D: (если надо - исправьте пути в программе). Тогда так:

VAR
S1,S2:STRING;
lng1,lng2:BYTE;
i:INTEGER;
f1,f2,f3:TEXT;
Ch:CHAR;
b,b1:BOOLEAN;
BEGIN
Assign(f1,'D:\d1');
ReSet(f1);
Assign(f2,'D:\d2');
ReWrite(f2);
REPEAT
REPEAT
Read(f1,Ch);
IF Ch<>' ' THEN
Write(f2,Ch);
UNTIL (Ch=' ') OR (EoF(f1));
IF NOT EoF(f1) THEN
WriteLn(f2);
UNTIL EoF(f1);
Close(f1);
Close(f2);
Assign(f2,'D:\d2');
ReSet(f2);
Assign(f3,'D:\d3');
ReWrite(f3);
Readln(f2,S1);
REPEAT
REPEAT
b:=TRUE;
b1:=FALSE;
ReadLn(f2,S2);
IF S2=S1 THEN b:=FALSE;
lng1:=Length(S1);
lng2:=Length(S2);
IF lng2=lng1+1 THEN
BEGIN
b:=FALSE;
FOR i:=1 TO lng1 DO
IF S1<>S2 THEN b:=TRUE;
IF b=FALSE THEN b1:=TRUE;
END;
UNTIL b OR ((b=FALSE) AND b1);
IF b THEN Write(f3,S1+' ');
IF (b=FALSE) AND b1 THEN Write(f3,S2+' ');
S1:=S2;
UNTIL EoF(f2);
Close(f2);
Erase(f2);
Close(f3);
END.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху