Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
1

Получение матрицы, элементы которой равны произведению значений индексов строки и столбца

01.04.2015, 17:40. Просмотров 863. Ответов 13
Метки нет (Все метки)

1. Напишите программу получения матрицы, элементы которой равны произведению значений индексов строки и столбца.
2. Дана символьная строка. Заменить все последовательности символов 'on' на 'online' и вывести новую строку (если искомой последовательности в строке нет, то вывести соответствующее сообщение).

Нужно объединить эти два задания в одну общую программу на тему подпрограммы на паскале. Помогите пожалуйста, а то я в это не очень, надо в универе сдать срочно.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2015, 17:40
Ответы с готовыми решениями:

Массивы. Получить матрицу, элементы которой равны произведению индексов строки и столбца
помогите плиз решить задачи! буду очень благодарен) "Программа работы с двумерным массивом"...

Определить, сколько чисел в массиве равны произведению своих индексов i*j.
Тема: Матрицы. Дан двумерный массив Х размером n*m, заполненный случайными числами. Определить,...

Сформировать матрицу, каждый элемент которой равен произведению номера строки на номер столбца
помогите пожалуйста срочно надо . Сформировать матрицу, каждый элемент которой равен произведению...

В двухмерном массиве найти все элементы, сумма индексов столбца и строки
Помогите написать программу,пожалуйста :) Заранее спасибо! Условие: В двухмерном массиве найти...

Двумерный массив. Сформировать матрицу, в которой элементы диагонали равны номеру строки
1.Для данного целого положительного N сформировать матрицу A(n,n), в которой элементы диагонали...

13
Joy
Эксперт Pascal/Delphi
2254 / 1251 / 1469
Регистрация: 29.08.2014
Сообщений: 4,555
01.04.2015, 20:38 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
const n=5;m=4;
var
  a:array[1..n,1..m] of integer;
  i,j:integer;
begin
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=i*j;
      write(a[i,j]:8);
    end;
    writeln;
    end;
end.
0
APALoff
1641 / 1070 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
02.04.2015, 00:46 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Var s : String;
 
Procedure Replace(Var ss : String; s1,s2 : String);
Var i : Byte;
Begin
  For i:=Length(ss)-Length(s1)+1 downto 1 do
    If Copy(ss,i,Length(s1))=s1 then
    Begin
      Delete(ss,i,Length(s1));
      Insert(s2,ss,i);
    end;
end;
 
Begin
  s:='cdabcdefabcdefcdefgcd';  {__ab__efab__ef__efg__}
  Replace(s,'cd','__');
  Writeln(s);
end.
0
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
02.04.2015, 03:19  [ТС] 4
Спасибо большое. Мне вот препод сказал что их нужно объединить в одну общую. это возможно? если да, то скиньте пожалуйста.
0
02.04.2015, 03:19
Joy
Эксперт Pascal/Delphi
2254 / 1251 / 1469
Регистрация: 29.08.2014
Сообщений: 4,555
02.04.2015, 05:50 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
uses crt;
var
  m,n,i:integer;
  s:string;
procedure wpause;
begin
  write('Нажмите пробел для выхода в основное меню');
  repeat
  until Readkey=#32;
end;
procedure proga2;
Var s : String;
Procedure Replace(Var ss : String; s1,s2 : String);
Var i : Byte;
Begin
  For i:=Length(ss)-Length(s1)+1 downto 1 do
    If Copy(ss,i,Length(s1))=s1 then
    Begin
      Delete(ss,i,Length(s1));
      Insert(s2,ss,i);
    end;
end;
Begin
  clrscr;
  write('Введите строку:');
  readln(s);
  if pos('on',s)=0 then writeln('В строке отсутствует последовательность "on"')
  else begin
    Replace(s,'on','online');
    writeln('Итоговая строка:');
    Writeln(s);
  end;
  wpause;
end;
 
procedure proga1(n,m:integer);
var
  a:array[1..10,1..10] of integer;
  i,j:integer;
begin
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=i*j;
      write(a[i,j]:8);
    end;
    writeln;
  end;
  wpause;
end;
begin
  repeat
    clrscr;
    writeln('1. Программа 1');
    writeln('2. Программа 2');
    writeln;
    writeln('Ваш выбор (цифра или ESC для выхода)');
    i:=ord(readkey);
    if i=0 then readkey;
    case i-48 of
      1:begin
        clrscr;
        repeat
          write('Введите количество строк(1..10):');
          readln(n);
        until (n>0) and (n<11);
        repeat
          write('Введите количество столбцов(1..10):');
          readln(m);
        until (m>0) and (n<11);
        proga1(n,m);
      end;
      2:proga2;
    end;
  until i=27;
end.
0
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
02.04.2015, 16:14  [ТС] 6
Огромное спасибо!
0
Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,306
09.04.2015, 14:29 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Например так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function  f(a,b:integer):integer;
begin
f:=a*b;
end;
var m,n,i,j:integer;
    a:array[1..20,1..20] of integer;
begin
m:=10;
n:=20;
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=f(i,j);
    write(a[i,j]:4);
   end;
  writeln;
 end;
readln
end.
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4892 / 3431 / 4027
Регистрация: 05.06.2014
Сообщений: 17,183
21.04.2015, 17:08 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const
  n=10;
type
  matrix=array [1..n,1..n] of integer;
var
  x:matrix;
  i,j:integer;
procedure create(var a:matrix);
var
  i,j:integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      a[i,j]:=i*j;
end;
begin
  create(x);
  for i:=1 to n do
    begin
      writeln;
      for j:=1 to n do
        write(x[i,j]:5);
    end;
  readln;
end.
0
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
24.04.2015, 02:47  [ТС] 10
Здравствуйте! Программа верная, но препод сказал ее немного переделать. Вот сама программа, нужно нижнюю часть перенести выше переделать на процедуру. Вверху еще препод сказал писать Program. Помогите пожалуйста, а то в паскале не очень силен. Спасибо!
Кликните здесь для просмотра всего текста
1 const
2 nmax=10;
3 type
4 matrix=array [1..nmax,1..nmax] of integer;
5 var
6 x:matrix;
7 i,j:integer;
8 n: integer;
9 function matr(n:integer):matrix;
10 var
11 a:matrix;
12 i,j:integer;
13 begin
14 for i:=1 to n do
15 for j:=1 to n do
16 a[i,j]:=i*j;
17 matrx:matrix;:=a;
18 end;
{--------------------------------}
19 begin
20 readln(n);
21 x:=matr(n);
22 for i:=1 to n do
23 begin
24 writeln;
25 for j:=1 to n do
26 write(x[i,j]:5);
27 end;
28 readln;
29 end.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const
  nmax = 10;
 
type
  matrix = array [1..nmax, 1..nmax] of integer;
 
var
  x: matrix;
  i, j: integer;
  n: integer;
 
function matr(n: integer): matrix;
var
  a: matrix;
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to n do
      a[i, j] := i * j;
  matrx:matrix;:= a;
end;
{--------------------------------}
begin
  readln(n);
  x := matr(n);
  for i := 1 to n do
  begin
    writeln;
    for j := 1 to n do
      write(x[i, j]:5);
  end;
  readln;
end.
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
4892 / 3431 / 4027
Регистрация: 05.06.2014
Сообщений: 17,183
24.04.2015, 09:07 11
Николайс, честно говоря, не очень понял. Что именно требует преподаватель, можно его словами передать?
Заголовок программы так:
Pascal
1
program lab;
0
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
24.04.2015, 13:16  [ТС] 12
Да, вот первую строчку вот так. А то что отделено пунктиром , нижние строки он сказал переместить выше
0
Николайс
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 15
06.05.2015, 15:21  [ТС] 13
Помогите пожалуйста с программой ( тема подпрограммы), задание нужно выполнить придерживаясь вот этого условия (Размерности массивов следует задать именованными константами. Все необходимые данные должны передаваться подпрограммам в качестве параметров; все вели¬чины, используемые только внутри подпрограмм, должны быть описаны как локальные. Использование глобальных переменных в подпрограммах не допускается. Вывод результатов работы подпрограмм должен выполняться в главной программе.)

Вот само задание: Напишите программу получения матрицы, элементы которой равны произведению значений индексов строки и столбца. Заранее спасибо!

У меня есть написанная программа, но препод сказал ее переделать. вверху program написать и нижнюю часть которую он отделил вроде как поднять выше в процедуру. Вот сама программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const
  nmax=10;
type
  matrix=array [1..nmax,1..nmax] of integer;
var
  x:matrix;
  i,j:integer;
  n: integer;
function matr(n:integer):matrix;
 var
  a:matrix;
  i,j:integer;
 begin
  for i:=1 to n do
    for j:=1 to n do
      a[i,j]:=i*j;
  matrx:matrix;:=a;
 end;
{--------------------------------}
begin
 readln(n);
 x:=matr(n);
  for i:=1 to n do
    begin
      writeln;
      for j:=1 to n do
        write(x[i,j]:5);
    end;
  readln;
end.
0
SuperKir
456 / 413 / 286
Регистрация: 10.03.2015
Сообщений: 1,766
Завершенные тесты: 1
06.05.2015, 16:55 14
1. Слишком замудрил.
2. Часть, что выделил, можно (вообще нужно бы даже) вынести в отдельную процедуру.
3. Матрица квадратная?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const RowCount = 10;
      ColumnCount = 10;
 
type TasksMatrix = Array [1..RowCount,1..ColumnCount] of Integer;
 
procedure CreatMatrix(var matr: TasksMatrix);
var i,j: Integer;
begin
    for i := 1 to RowCount do
        for j := 1 to ColumnCount do
            matr[i,j] := i*j;
end;
 
procedure Print(matr: TasksMatrix);
var i,j: Integer;
begin
    for i := 1 to RowCount do
    begin
        for j := 1 to ColumnCount do
            Write(matr[i,j],' ');
        WriteLn;
    end;
end;
 
var x : TasksMatrix;
 
begin
    CreatMatrix(x);
    Print(x);
    ReadLn;
end.
0
06.05.2015, 16:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2015, 16:55

Найти и вывести номер первой строки, в которой все элементы равны нулю
1. С клавиатуры вводится матрица вещественных чисел размером N строк на M столбцов. N не...

Вывести номер столбца квадратной матрицы, у которого все элементы равны 0
Задача с квадратной матрицой: Вывести номер столбца, у которого все элементы равны 0, а если...

Если все элементы какой-либо строки данной матрицы равны между собой, то все элементы такой строки замените нулями
Если все элементы какой-либо строки данной матрицы равны между собой, то все элементы такой строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.