Вопрос № 86911: Прошу помогите с задачей.
Дана квадратная матрица порядка n, в каждой строке матрицы выбрать наибольший элемент и поменять его с диаганальным элементом этой строки.
Спасибо!...Вопрос № 86915: Здравствуйте! никак не могу разобраться с программой на паскале.задание следуещее: Даны n фамилий упорядочить их в алфавитном порядке. фамилии могут быть на латинском языке.заранее очень благодарен...Вопрос № 86919: очень прошу решите задачу в паскале:
Из множества прямых М, заданных коэффицентами уравнения Ах+Ву+С=0,выбрать прямые или совокупности прямых,обладающие определенными свойствами:
1)взаимно параллельные прямые
2)вск пары взаимно перпендику...Вопрос № 86995: Люди,пожалуйста,срочно нужна помощь в плане написания курсовика по Pascal`ю...сроки сильно поджимают=(Заранее благодарен!
описание:Выполнить над квадратной матрицей,порядка n ,порядок действий.Для каждого действия заданы последовательности,н...Вопрос № 87015: Помогите, пожалуйста составить программу на Pascal, используя case, которая читает натуральное число N в десятичном представление ( N <= 100), а на выходе выдает это же число в десятичном представление и на естественном языке. 7- семь....
Вопрос № 86.911
Прошу помогите с задачей.
Дана квадратная матрица порядка n, в каждой строке матрицы выбрать наибольший элемент и поменять его с диаганальным элементом этой строки.
Отвечает: Verena
Здравствуйте, Серов Алексей Евгеньевич!
Диагональный элемент, как я понимаю, лежит на главной диагонали, тогда его координаты: i=j. Тогда всё просто:
var a: array [1..10, 1..10] of integer;
i, j, n, max, buf: integer;
begin
read (n); {ввод размерности и матрицы}
for i:=1 to n do
for j:=1 to n do
readln (a[i, j]);
for i:=1 to n do
begin
max:= 1; {за максимальный принимаем первый элемент строки (запоминаем индекс)}
for j:=1 to n do
if a[i, j]>a[i, max] then max:= j; {если текущий больше, перезапоминаем индекс}
buf:= a[i, i]; {меняем местами с элементом [i, i] - лежит на главой диагонали}
a[i, i]:= a[i, max];
a[i, max]:= a[i, j];
end;
for i:= 1 to n do begin {вывод}
for j:=1 to n do write (a[i, j], ' ');
writeln;
end;
end.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 14.05.2007, 21:55
Отвечает: Устинов С.Е.
Здравствуйте, Серов Алексей Евгеньевич!
const n=3;
var a:array[1..n,1..n] of integer;
i,j,t:integer;
begin
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']='); readln(a[i,j]);
end;
for i:=1 to n do
begin
t:=1;
for j:=2 to n do if a[i,j]>a[i,t] then t:=j;
j:=a[i,i];
a[i,i]:=a[i,t];
a[i,t]:=j;
end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j],' ');
writeln;
end;
end.
Ответ отправил: Устинов С.Е. (статус: Практикант)
Ответ отправлен: 14.05.2007, 21:57
Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Серов Алексей Евгеньевич!
Вот примерное решение проги.
Program P1;
Uses crt;
Var
Mas : array[1..50,1..50] of Integer;
i,j,max,n,Buffer,Index : Integer;
{------}
Procedure Print_Massiv;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[i,j]);
End;
End;
{------}
Begin
Repeat
Clrscr;
Write('‚ўҐ¤ЁвҐ а §¬Ґа®бвм --> ');
ReadLn(n);
Until n>=2;
For i:=1 to n do
For j:=1 to n do
Begin
Write('Введите [',i,':',j,']-й элемент -- > ');
Readln(Mas[I,J]);
End;
Clrscr;
Print_Massiv;
For i:=1 to n do
Begin
Max := Mas[i,1];
For j:=1 to n do
If Mas[i,j] > Max
Then
Begin
Max := Mas[i,j];
Index := j;
End;
Buffer := Mas[i,i];
Mas[i,i] := Max;
Mas[i,Index] := Buffer;
End;
Writeln;
Writeln('Результат');
Print_Massiv;
ReadKey;
End.
зы не судите строго
--------- Это круто - машина состояний с бесконечным циклом
Здравствуйте! никак не могу разобраться с программой на паскале.задание следуещее: Даны n фамилий упорядочить их в алфавитном порядке. фамилии могут быть на латинском языке.заранее очень благодарен
Отправлен: 14.05.2007, 22:56
Вопрос задал: Den_Greg (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: LEXASOFT
Здравствуйте, Den_Greg!
Программа в приложении
Приложение:
--------- Нет безвыходных положений...
Ответ отправил: LEXASOFT (статус: 4-ый класс)
Ответ отправлен: 14.05.2007, 23:42 Оценка за ответ: 5
Эта прога располагает список фамилий по алфавиту в зависимости ASCII - кодировкой.
Program p1;
uses crt;
Var
Mas : array[1..100] of string;
i,n : integer;
st : string;
Flag : Boolean;
Begin
Repeat
Clrscr;
Write('Введите количество фамилий --> ');
Readln(n);
Until n>1;
For i:=1 to n do
Begin
Writeln('Введите фамилию ',i,'-го человека --> ');
Readln(Mas[i]);
End;
Clrscr;
Repeat
Flag:=true;
For i:=1 to n-1 do
If Mas[i] > Mas[i+1]
Then
Begin
st := Mas[i+1];
Mas[i+1]:=Mas[i];
Mas[i] := st;
Flag:= false;
End;
Until flag;
Writeln('Результат');
For i:=1 to n do
Writeln(Mas[i]);
readkey;
End.
--------- Это круто - машина состояний с бесконечным циклом
Ответ отправил: Вологин Всеволод Вячеславович (статус: 1-ый класс)
Ответ отправлен: 15.05.2007, 12:07 Оценка за ответ: 5
Вопрос № 86.919
очень прошу решите задачу в паскале:
Из множества прямых М, заданных коэффицентами уравнения Ах+Ву+С=0,выбрать прямые или совокупности прямых,обладающие определенными свойствами:
1)взаимно параллельные прямые
2)вск пары взаимно перпендикулярных прямых
3)две параллельные прямые,между которыми наименьшое расстояние
54х+13у-400=0
117х-17у+5=0
Отвечает: Verena
Здравствуйте, Мишин Георгий Васильевич!
Параллельность прямых будем проверять по условию равенства угловых коэффициентов (Ах+Ву+С=0 => y = -(A/B)x-(C/B), k=A/B, минус можно опустить). Т.е.
A1/B1=A2/B2
Перпендикулярность также проверяем через угловые коэффициенты:
(A1/B1)*(A2/B2)=-1
Расстояние между параллельными прямыми вычислим по формуле:
d=|A2*x+B2*y+C2|/sqrt(A2^2+B2^2), где x, y - координаты произвольной точки на прямой A1x+B1y+C1=0.
Программа ищет пары (у Вас в 1-м пункте о парах ничего не сказано, так что особо обращаю внимание) параллельных и перпендикулярных прямых, коэффициенты хранятся в виде матрицы, а также номера параллельных прямых с минимальным расстоянием (предполагается, что минимум один).
Код в приложении.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 15.05.2007, 03:37
Вопрос № 86.995
Люди,пожалуйста,срочно нужна помощь в плане написания курсовика по Pascal`ю...сроки сильно поджимают=(Заранее благодарен!
описание:Выполнить над квадратной матрицей,порядка n ,порядок действий.Для каждого действия заданы последовательности,начиная со второго,исходной является матрица,полученная в результате выполнения предшествующих преобразований.Список дейсвий над матрицами:
1. Вычесть из исходной еденичную матрицу
2. сформировать матрицу транспонированную по отношению к исходной
3. сформировать из элементов исходной матрицы,лежащей под главной диагональю,кососимметрическую матрицу(матрица А симметрическая,если Aij=-Aji при любых значениях i j)
4. сформировать диагональную матрицу из элементов,которое определяются как суммы элементов столбцов исходной матрицы
5. у элементов с нечетной суммой индеков заменить знаки на противоположные
6. умножить L-й столбей матрицы на заданное число
7. из элементов исходной матрицы лежащей на главной диагонали и под ней,сформировать вектор,в котором первый элемент каждой строки непосредственно следуетза диагональным элементом предыдущей.
вот такой бред=(для меня это полный ужас!!!помогите....
Отправлен: 15.05.2007, 15:00
Вопрос задал: Aphro (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
проги 3,4,7 не вкурил как делать.
Что сделал прими (проерь перед сдачей).
program p1;
uses crt;
Var
Mas : Array[1..100,1..100] of integer;
i,j,n : Integer;
{---}
Procedure Print_Massiv;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[i,j]);
End;
End;
{---}
Begin
Repeat
clrscr;
Write('Введите размерность массива --> ');
readln(n);
Until n>=2;
For i:=1 to n do
for j:=1 to n do
begin
Write('Введите [',i,':',j,']-й элемент -->');
Readln(Mas[i,j]);
End;
Print_Massiv;
WriteLn('Из исходной матрицы вычитает единичную : ');
For i:=1 to n do
Mas[i,i]:=Mas[i,i]-1;
Print_Massiv;
Readkey;
End.
program p2;
uses crt;
Var
Mas : Array[1..100,1..100] of integer;
i,j,n : Byte;
{---}
Procedure Print_Massiv;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[i,j]);
End;
End;
{---}
Procedure Print_Massiv_Transponir;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[j,i]);
End;
End;
{---}
Begin
Repeat
clrscr;
Write('Введите размерность массива --> ');
readln(n);
Until n>=2;
For i:=1 to n do
for i:=1 to n do
begin
Write('Введите [',i,':',j,']-й элемент -->');
Readln(Mas[i,j]);
End;
Print_Massiv;
Writeln('результат');
Print_Massiv_Transponir;
Readkey;
End.
program p5;
uses crt;
Var
Mas : Array[1..100,1..100] of integer;
i,j,n : Integer;
{---}
Procedure Print_Massiv;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[i,j]);
End;
End;
{---}
Begin
Repeat
clrscr;
Write('Введите размерность массива --> ');
readln(n);
Until n>=2;
For i:=1 to n do
for j:=1 to n do
begin
Write('Введите [',i,':',j,']-й элемент -->');
Readln(Mas[i,j]);
End;
Print_Massiv;
WriteLn('элементы с нечетной суммой индеков заменены на противоположные : ');
For i:=1 to n do
For j:=1 to n do
If (i+j)mod 2 <> 0
Then Mas[i,i]:=Mas[i,i]*(-1);
Print_Massiv;
Readkey;
End.
program p6;
uses crt;
Var
Mas : Array[1..100,1..100] of integer;
i,j,n,l,a : Integer;
{---}
Procedure Print_Massiv;
Begin
For i:=1 to n do
Begin
Writeln;
For j:=1 to n do
Write(' ',Mas[i,j]);
End;
End;
{---}
Begin
Repeat
clrscr;
Write('Введите размерность массива --> ');
readln(n);
Until n>=2;
For i:=1 to n do
for j:=1 to n do
begin
Write('Введите [',i,':',j,']-й элемент -->');
Readln(Mas[i,j]);
End;
Writeln('Исходный массив');
Print_Massiv;
Repeat
Write('L-й столбец --> ');
Readln(l);
Until (l>0) and (l<=n);
Write('На какое число умножить --> ');
Readln(a);
For i:=1 to n do
Mas[i,L]:=Mas[i,L]*a;
WriteLn('Результат : ');
Print_Massiv;
Readkey;
End.
--------- Это круто - машина состояний с бесконечным циклом
Ответ отправил: Вологин Всеволод Вячеславович (статус: 1-ый класс)
Ответ отправлен: 16.05.2007, 12:19 Оценка за ответ: 4 Комментарий оценки: спасибо большое,я постараюсь доработать,хз получиться или нет=)
Вопрос № 87.015
Помогите, пожалуйста составить программу на Pascal, используя case, которая читает натуральное число N в десятичном представление ( N <= 100), а на выходе выдает это же число в десятичном представление и на естественном языке. 7- семь.
Отправлен: 15.05.2007, 16:42
Вопрос задал: Leeryhomer (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Verena
Здравствуйте, Leeryhomer!
Можно было бы решить такую задачу, задав массив, хранящий под соответствующим индексом соответствующую цифру, записать цифры числа по отдельности в целочисленный массив и вызывать по индексу, пользуясь правилами формирования числа (например, пятьдесят = "пять"+"десят", двадцать = "два"+"дцать"), но такой способ не слишком сильно демонстрирует работу оператора case, там его можно даже вообще не использовать. Поэтому я написала код не очень оптимальный, зато полностью основанный
на операторе выбора case, смотрите в приложении.
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 15.05.2007, 17:39 Оценка за ответ: 5
Отвечает: Загиров Рустам
Здравствуйте, Leeryhomer!
В предыдущей программе эксперта Verena мне не нравиться преобразование числа в строку - можно обойтись и без этого. Вот немного другой код.
program p1;
uses crt;
var
St1,st2 : string;
n,m,b: integer;
Begin
Repeat
clrscr;
Write('‚ўҐ¤ЁвҐ зЁб«® --> ');
Readln(n);
Until (N>0) and (n<=100);
m:= Trunc(n / 10);
Case M of
1:St1:=' надцать';
2:st1:='двадцать ';
3:st1:='тридцать ';
4:st1:='сорок ';
5:st1:='пятьдесят ';
6:st1:='шестьдесят ';
7:st1:='семьдесят ';
8:st1:='восемьдесят ';
9:st1:='девяносто ';
10:st1:='сто';
End;
b:=n mod 10;
Case b of
1:St2:='один';
2:st2:='два';
3:st2:='три';
4:st2:='четыре';
5:st2:='пять';
6:st2:='шесть';
7:st2:='семь';
8:st2:='восемь';
9:st2:='девять';
End;
If n=10
Then
Write(n,' - десять')
Else if m =1
Then Write(n,' - ',St2,st1)
Else
Writeln(n,' - ',St1,st2);
ReadKey;
End.
--------- Это круто - машина состояний с бесконечным циклом
Ответ отправил: Вологин Всеволод Вячеславович (статус: 1-ый класс)
Ответ отправлен: 16.05.2007, 12:53 Оценка за ответ: 5
Отвечает: VinipuX
Здравствуйте, Leeryhomer!
Посмотри вот здесь. На мой взгляд более чем исчерпывающая информация.
http://www.delphikingdom.ru/asp/itemq.asp?Mode=1&ItemID=431
Ответ отправил: VinipuX (статус: 2-ой класс)
Ответ отправлен: 17.05.2007, 02:28 Оценка за ответ: 5