0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 23
1

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

07.01.2013, 00:23. Показов 1743. Ответов 3
Метки нет (Все метки)

Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Создать новый массив, элементами которого являются суммы первой и последней цифры каждого числа старого массива. Массив вывести в виде таблицы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2013, 00:23
Ответы с готовыми решениями:

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

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

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

Создать новый массив, элементами которого являются все отрицательные элементы массива C
Дан массив С(п). Создать новый массив, элементами которого являются все отрицательные элементы...

3
5 / 5 / 1
Регистрация: 26.10.2012
Сообщений: 20
07.01.2013, 01:58 2
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
uses
    crt;
 
const
    Size=10;
 
 
type
    tArr=array [1..Size,1..Size] of integer;
 
 
procedure   genArray(var arr:tArr;var i,j:integer);
    const
        max=100;
    
    var
        i1,j1:integer;
    
    begin
        i:=1+random(10);
        j:=1+random(10);
        for i1:=1 to i do
            for j1:=1 to j do
                    arr[i1,j1]:=random(max)
    end;
 
 
procedure   printArray(var arr:tArr;var i,j:integer);
    var
    i1,j1:integer;
    
    begin
        for i1:=1 to i do begin
            for j1:=1 to j do
                    write(arr[i1,j1],' ');
                writeln;
        end;
    end;
 
 
procedure   genNewArr(var oldArr,newArr:tArr; var i,j:integer);
    var
        error,i1,j1:integer;
        firstdigit:integer;
        text:string;
    
    begin
        for i1:=1 to i do begin
            for j1:=1 to j do begin
                    str(oldArr[i1,j1],text);
                    val(text[1],firstdigit,error);
                    newArr[i1,j1]:=oldArr[i1,j1] mod 10+firstdigit;
                end;
        end;
    end;
 
 
var
    old,new:tArr;
    i,j:integer;
 
 
begin
    clrscr;
    randomize;
    GenArray(old,i,j);
    PrintArray(old,i,j);
    readln;
    genNewArr(old,new,i,j);
    PrintArray(new,i,j);
    readln;
end.


Небольшое пояснение.
str(oldArr[i1,j1],text); - переменная из старого массива целочисленная переменная заносится в строку(text)
val(text[1],firstdigit,error); - берем первый символ этой строки (визуально первую цифру элемента старого массива), преобразуем ее в число(firstdigit). error используется только как необходимость (в него пишется номер ошибки, которая в данном случае невозможна)
newArr[i1,j1]:=oldArr[i1,j1] mod 10+firstdigit; - получаем в новом массиве элемент, стоящий на том же месте и равный сумме первого числа и последнего. (в случае числа, состоящего из 1 цифры мы получаем удвоенное старое число, что согласно постановке задачи, ошибкой не является).
Если написано слишком мутно, то могу переписать ))) Но, надеюсь, что это не потребуется ). Будут вопросы, спрашивайте.
0
durila :d
125 / 107 / 98
Регистрация: 21.12.2012
Сообщений: 160
07.01.2013, 02:06 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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
program _matrix;
 
const 
 
 ln         = 10;
 Col        = 10;
 
type
 
 TMatrix    = array [0..Ln,0..Col] of integer;
 
var
 
 Cur_Mtr    : TMatrix;
 Mod_Mtr    : TMatrix;
 i,j        : byte;
 
function RandomInt(X1,X2 : integer):integer;
{возвращает случайное целое из (X1;X2)}
var
 x,abs_max  : integer;
 sign       : 0..1;
begin
 if X1<X2 then
 begin
  if abs(x1) > abs(x2) 
   then abs_max:=abs(X1) 
   else abs_max:=abs(X2);   
  repeat 
   x:=Random(abs_max);
   sign:=random(2);
   if sign>0 then x:=-x;
  until (x > X1) and (x < X2);
          RandomInt:=x;     
 end 
 else     RandomInt:=0;
end;
 
procedure FillMatrix(var M : TMatrix;
                     rnd   : boolean; 
                     lmax  : byte;
                     Cmax  : byte;
                     lBord : integer;
                     rBord : integer);
{ процедура заполнения матрицы
 rnd   : true - случайные значения; false - вручную
 lmax  : количество строк матрицы
 Cmax  : количество столбцов матрицы
 lBord : диапазон значений
 rBord : элементов матрицы                              }
var     
 i,j        : byte;
 x          : integer;
begin
 M[0,0]:=lmax;
 M[0,1]:=Cmax;
 case rnd of 
    true  : begin
             for i:=1 to M[0,0] do
             for j:=1 to M[0,1] do
             M[i,j]:= RandomInt(lBord,rBord);
            end;
    false : begin
             for i:=1 to M[0,0] do
             for j:=1 to M[0,1] do
               begin
                repeat
                 writeln('range: ',lBord,'..',rBord);
                 write('[',i,',',j,']:> ');
                 readln(x)
                until (x>lBord) and (x<rBord);
                M[i,j]:=x;
               end;
            end;
 end;
end;
 
procedure PrintMatrix(const M : TMatrix);
{процедура выывода элементов матрицы на экран}
var
 i,j        : byte;
 begin
 writeln();
  for i:=1 to M[0,0] do begin
  for j:=1 to M[0,1] do write(M[i,j]:5,' ');
                        writeln()
                        end;
 writeln();                     
 end;
 
function GetSum(N : integer):byte;
{возвращает сумму последней и первой цифры N} 
var
 last,first : byte;
begin
 N:=Abs(N);
 last :=N mod 10;
 while  N div 10 <> 0 do N:= N div 10;
 first:=N mod 10;
 GetSum:=last+first;
end;
 
BEGIN
 
{ fill matrix }
 Randomize;
 FillMatrix(Cur_Mtr,true,5,5,-1000,1000);
 Write('Current matrix:');
 PrintMatrix(Cur_Mtr);
 
{ processing & output }
 Mod_Mtr[0,0]:=Cur_Mtr[0,0];
 Mod_Mtr[0,1]:=Cur_Mtr[0,1];
 for i:=1 to Cur_Mtr[0,0] do
 for j:=1 to Cur_Mtr[0,1] do 
 Mod_Mtr[i,j]:=GetSum(Cur_Mtr[i,j]);
 
 Write('result matrix:');
 PrintMatrix(mod_mtr);
 
END.
компилировался в FPC & PascalABC.net
0
5 / 5 / 1
Регистрация: 26.10.2012
Сообщений: 20
07.01.2013, 18:31 4
Ну да (, я не учитывал, что числа целые... У меня для натуральных.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2013, 18:31
Помогаю со студенческими работами здесь

Создать новый массив, элементами которого являются произведение A (I) на максимальный элемент массива А
Дан массив А ( n ).создать новый массив, элементами которого являются произведение A ( I) на...

Создать новый массив, элементами которого являются все отрицательные элементы массива C
Дан массив С(п). Создать новый массив, элементами которого являются все отрицательные элементы...

Дан массив A(n). Создать новый массив , элементами которого являются произведения A(i) на максимальный элемент массива A
Дан массив A(n). Создать новый массив , элементами которого являются произведения A(i) на...

Создать новый массив, элементами которого являются все отрицательные элементы исходного массива
Добрый день.Не могли бы вы помочь с задачей на одномерный массив. 6.3. Дан массив С(п). Создать...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru