Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2017, 19:31   #1
Programmer-Analyst
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 11
Вопрос Object Pascal, куча задач, решите мне нахаляву!

Не могу решить следующие задачи :
(Пожалуста приведите код решения данных задач на Object Pascal)

1. Найти сумму цифр пятизначного числа, введённого с клавиатуры.

2. Найти значения выражения для вводимых с клавиатуры значений
переменных A, B, C. Вывести результат с точностью 5 знаков после запятой.


3. Написать программу, проверяющую принадлежность точки с координатами (х, у) заштрихованной области на плоскости.


4. В каждой паре чисел массива Z(10) выполнить следующие пре-
образования: если числа одинаковых знаков, то поменять их местами, а
большее из них переписать в массив A; если знаки разные, то оба числа
записать в массив А; если одно из них равно нулю, то не выполнять ни-
каких действий.

5. Дана матрица Z(4,6). Определить и вывести в массив В все эле-
менты, которые в своей строке больше предыдущего и меньше после-
дующего.

6. Даны две строки символов. В первой оставить только те, кото-
рых нет во второй строке.

7. Дан массив A[20] из вещественных чисел. Преобразовать массив
так, чтобы в начале массива стояли положительные числа и нули, в кон-
це массива – отрицательные элементы, порядок следования элементов в
группах сохранить.

8. Заданы две матрицы А(6,6) и В(6,6). Для матрицы, которая отвечает
заданному условию (1) выполните преобразования (2)

Условие (1) проверить в подпрограмме Function, преобразование (2)
выполнить в подпрограмме Procedure.


1. больше сумма элементов на главной диагонали
2. в каждом столбце найти максимальный элемент и номер столбца, в котором он расположен
Programmer-Analyst вне форума Ответить с цитированием
Старый 15.01.2017, 20:42   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Хозяин, и это - вся работа ? Хорош, тогда обсудим прейскурант. В разделе Фриланс. Сменить название темы с "Нужна помощь новичку" на "Сделайте за меня на халяву" .
п.3 "заштрихованная область" - на карте, хранящейся в сейфе Генштаба ?

Нет даже малейшего намека на попытку самому решать заданную ему задачу.
digitalis вне форума Ответить с цитированием
Старый 16.01.2017, 04:58   #3
Programmer-Analyst
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 11
Восклицание Help me

Xорошо вышеперечисленные задачи сам попробую выполнить затем приведу вам свой код

тогда помогите хотябы справиться с двумя задачами

7. Дан массив A[20] из вещественных чисел. Преобразовать массив
так, чтобы в начале массива стояли положительные числа и нули, в кон-
це массива – отрицательные элементы, порядок следования элементов в
группах сохранить.

8. Заданы две матрицы А(6,6) и В(6,6). Для матрицы, которая отвечает
заданному условию (1) выполните преобразования (2)

Условие (1) проверить в подпрограмме Function, преобразование (2)
выполнить в подпрограмме Procedure.

1. больше сумма элементов на главной диагонали
2. в каждом столбце найти максимальный элемент и номер столбца, в котором он расположен


Решение

4. В каждой паре чисел массива Z(10) выполнить следующие пре-
образования: если числа одинаковых знаков, то поменять их местами, а
большее из них переписать в массив A; если знаки разные, то оба числа
записать в массив А; если одно из них равно нулю, то не выполнять ни-
каких действий.

Код:
uses crt;
var z,a:array[1..10]of real;
i,k:integer;
b:real;
 
begin
 clrscr;
 write('Введите массив Z -> ');
 for i:=1 to 10 do read(z[i]);
 readln;
 k:=0;
 for i:=1 to 5 do if z[2*i]*z[2*i-1]>0 then
 begin
  b:=z[2*i];
  z[2*i]:=z[2*i-1];
  z[2*i-1]:=b;
  inc(k);
  if z[2*i]>z[2*i-1] then a[k]:=z[2*i] else a[k]:=z[2*i-1];
 end else
 begin
  inc(k);
  a[k]:=z[2*i-1];
  inc(k);
  a[k]:=z[2*i];
 end;
 
 writeln('Массив Z');
 for i:=1 to 10 do write(z[i]:0:3,' ');
 writeln('Массив A');
 for i:=1 to k do write(a[i]:0:3,' ');
 readln;
end.
5. Дана матрица Z(4,6). Определить и вывести в массив В все эле-
менты, которые в своей строке больше предыдущего и меньше после-
дующего.

Код:
uses crt;
const n=4;
      m=6;
var z:array[1..n,1..m] of integer;
    i,j:integer;
begin
clrscr;
randomize;
writeln('МСатрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    z[i,j]:=random(20);
    write(z[i,j]:4);
   end;
  writeln;
 end;
writeln;
writeln('Элементы, которые в строке больше предыдущего и меньше следующего:');
for i:=1 to n do
for j:=2 to m -1 do
if (z[i,j]>z[i,j-1])and(z[i,j]<z[i,j+1]) then write(z[i,j],' ');
readln
end.
6. Даны две строки символов. В первой оставить только те, кото-
рых нет во второй строке.

Код:
uses crt;
var s1,s2:string;
    i:byte;
begin
clrscr;
writeln('Введите первую строку');
readln(s1);
writeln('Введите вторую строку');
readln(s2);
for i:=length(s1) downto 1 do
if pos(s1[i],s2)>0 then delete(s1,i,1);
writeln('Первая строка после удаления:');
write(s1);
readln
end.

Последний раз редактировалось Programmer-Analyst; 16.01.2017 в 05:07. Причина: Кодинг
Programmer-Analyst вне форума Ответить с цитированием
Старый 16.01.2017, 13:08   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Ну вот - можем, когда захотим.
6. проверил, работает. 7. делается приблизно так :
Код:
var A: array[1..20] of real ;
begin
  { заполнишь массив  сам }
   for i := 1 to 19 do
     begin
       nn := 0 ;
       for j := 1 to 19 do
         if (A[j]<0) and (A[j+1]>=0) then
           begin
              tmp := A[j] ;
              A[j]:= A[j+1] ;
              A[j+1] := tmp ;
              Inc (nn)
           end ;

      if nn=0 then Break ;
     end;
end.

Последний раз редактировалось digitalis; 16.01.2017 в 13:10.
digitalis вне форума Ответить с цитированием
Старый 16.01.2017, 16:21   #5
Programmer-Analyst
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 11
Сообщение H_01

А 8 задание как сделать?
Programmer-Analyst вне форума Ответить с цитированием
Старый 16.01.2017, 16:56   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Programmer-Analyst Посмотреть сообщение
8. Заданы две матрицы А(6,6) и В(6,6). Для матрицы, которая отвечает
заданному условию (1) выполните преобразования (2)

Условие (1) проверить в подпрограмме Function, преобразование (2)
выполнить в подпрограмме Procedure.

1. больше сумма элементов на главной диагонали
Код:
const 
  n = 6;
type 
  myarr_type = array[1..n,1..n] of real;

function SumMainDiagonal( M : myarr_type) : real;
var i : integer;
  sum : real;
begin
  sum := 0;
  for i:=1 to n do
   sum := sum + M[i,i];
  SumMainDiagonal := sum
end;


.....
var 
  A, B : myarr_type;
....
begin
  
   ...<заполнить матрицу A>  
 
   ...<заполнить матрицу B>  

   if SumMainDiagonal(A)>SumMainDiagonal(B) 
        then Preobraz(A) 
        else Preobraz(B);

end.

Цитата:
Сообщение от Programmer-Analyst Посмотреть сообщение
2. в каждом столбце найти максимальный элемент и номер столбца, в котором он расположен
а это мне не понятно.
какое тут преобразование? уточните условие, как надо преобразовать матрицу.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.01.2017, 21:39   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Сообщение от Programmer-Analyst Посмотреть сообщение
8. Заданы две матрицы А(6,6) и В(6,6). Для матрицы, которая отвечает
заданному условию (1) выполните преобразования (2)

Условие (1) проверить в подпрограмме Function, преобразование (2)
выполнить в подпрограмме Procedure.

1. больше сумма элементов на главной диагонали
2. в каждом столбце найти максимальный элемент и номер столбца, в котором он расположен
Бессмыслица какая-то.
"в каждом столбце найти... элемент" ... "номер столбца, в котором он расположен."

Последний раз редактировалось digitalis; 17.01.2017 в 12:24.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal 7.0 Пара не понятных мне задач.Строки. anbroider Помощь студентам 6 19.12.2012 21:03
Trubo Pascal 7.0 Пара не понятных мне задач. anbroider Помощь студентам 4 14.12.2012 23:43