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

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

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

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

Паскаль. Матрица. Массив

Suicide Silence

Ученик
Регистрация
27 Июн 2011
Сообщения
8
Реакции
0
Баллы
0
Паскаль. Матрица. Массив

Дана матрица размером 6Х6 заданная случайным образом числами от 30 до 50. Сформировать одномерный массив, в котором текущий элемент равен сумме нечетных элементов матрицы соответствующего столбца (b(j)=summa для jого столбца). Если нечетных элементов в столбце нет, то b(j)=0.
Как сделать дальше?
Опять часть получается, а другую часть незнаю как сделать='(
program pr5_3;
uses crt;
var a:array[1..6,1..6] of integer;
i,j,b:integer;
begin
clrscr;
textcolor(12);
randomize;
for i:=1 to 6 do
for j:=1 to 6 do
a[i,j]:=random(21)+30;
for i:=1 to 6 do begin
for j:=1 to 6 do
write(a[i,j]:6,' ');
writeln;
end;
readln;
end.
 
Как сделать дальше? Опять часть получается, а другую часть незнаю как сделать='(
Ну, то есть, конечно - ежели вопреки условию, что b - одномерный массив, Вы объявляете его простой переменной, то точно ничего не получится. Не взирая на столь полюбившиеся Вам CRT-шные игры с цветом шрифта. Ну ладно:
Код:
program pr5_3;
uses crt;
var
 a:array[1..6,1..6] of integer;
 b:array[1..6] of integer;
 i,j:integer;
begin
 clrscr;
 textcolor(12);
 randomize;
 for i:=1 to 6 do
  for j:=1 to 6 do
   a[i,j]:=random(21)+30;
 for i:=1 to 6 do
  begin
   for j:=1 to 6 do
    write(a[i,j]:6);
   writeln;
  end;
 writeln;
 writeln('Sums of odd elements in columns:');
 for j:=1 to 6 do
  begin
   b[j]:=0;
   for i:=1 to 6 do
    if (a[i,j] mod 2) = 1 then b[j]:=b[j]+a[i,j];
   write(b[j]:6);
  end;
 readln;
end.
 
Vladimir_S
Вы выручаете меня снова и снова=)
Спасибо Вам огромное!
Перед экзаменом мозги поплыли и теперь почти ничего не могу правильно написать.
 
Скажите пожалуйста, а как писать код паскаля в рамке как у вас?
Просто интересно=)
 
И вопрос по поводу строковых элементов в Pаscal
Я их вообще не понимаю можете помочь написать программу для понятия строковых эл-тов
условия такие
1)Дана произвольная строка символов. Распечатать все слова четной длины, расположенные после слова с наибольшим количеством символов. Если таких слов нет, то выдать сообщение.
2)Дана произвольная строка символов. Составить новую строку из слов, в которых не встречается бука «н» («Н»). В результирующей стоке слова разделяются одним пробелом, в исходной – произвольным количеством пробелов.
 
Скажите пожалуйста, а как писать код паскаля в рамке как у вас?
Просто интересно=)
1. Перейти в "Расширенный режим".
2. Выделить текст программы.
3. Щелкнуть по значку # (можно и по php, тогда будет еще и цветная разметка - но по-моему, это лишнее):
PHP:
var 
 a:array[1..6,1..6] of integer;
 i,j,b:integer;
begin
 clrscr;
 textcolor(12);
 {главное, что в обоих случаях сохраняются структурные элементы - отступы, "лесенки" и пр.}
 
Все равно спасибо вам огромное Владимир!
 
1)Дана произвольная строка символов. Распечатать все слова четной длины, расположенные после слова с наибольшим количеством символов. Если таких слов нет, то выдать сообщение.
Код:
CONST
 Lit=['A'..'Z']+['a'..'z']+['А'..'Я']+['а'..'я'];
VAR
 S:String;
 W:Array[1..127] of String;
 N,i,Iml,ML:Byte;

BEGIN
 For i:=1 to 127 do W[i]:='';
 Writeln('Enter the string:');
 Readln(S);
 N:=0;
 i:=0;
 REPEAT
  Repeat
   Inc(i);
  Until (S[i] in Lit) or (i=Length(S));
  If i<Length(S) then
   begin
    Inc(N);
    Repeat
     If S[i] in Lit then W[N]:=W[N]+S[i];
     Inc(i);
    Until (NOT (S[i] in Lit)) or (i=Length(S)+1);
   end;
 UNTIL i>=Length(S);
 ML:=0;
 For i:=1 to N do
  If Length(W[i])>ML then
   begin
    ML:=Length(W[i]);
    Iml:=i;
   end;
 If Iml=N then
  Writeln('The longest word is the last one')
 else
  For i:=Iml+1 to N do
   If (Length(W[i]) mod 2) = 0 then Write(W[i]+' ');
 Readln
END.
2)Дана произвольная строка символов. Составить новую строку из слов, в которых не встречается бука «н» («Н»). В результирующей стоке слова разделяются одним пробелом, в исходной – произвольным количеством пробелов.
Код:
CONST
 Lit=['A'..'Z']+['a'..'z']+['А'..'Я']+['а'..'я'];
VAR
 S,S1:String;
 W:Array[1..127] of String;
 b:boolean;
 N,i,j:Byte;

BEGIN
 S1:='';
 For i:=1 to 127 do W[i]:='';
 Writeln('Enter the string:');
 Readln(S);
 N:=0;
 i:=0;
 REPEAT
  Repeat
   Inc(i);
  Until (S[i] in Lit) or (i=Length(S));
  If i<Length(S) then
   begin
    Inc(N);
    Repeat
     If S[i] in Lit then W[N]:=W[N]+S[i];
     Inc(i);
    Until (NOT (S[i] in Lit)) or (i=Length(S)+1);
   end;
 UNTIL i>=Length(S);
 For i:=1 to N do
  begin
   b:=true;
   j:=0;
   Repeat
    Inc(j);
    If (W[i][j]='Н') or (W[i][j]='н') then b:=false;
   Until (b=false) or (j=Length(W[i]));
   If b then S1:=S1+W[i]+' ';
  end;
 Writeln(S1);
 Readln
END.
 
Назад
Сверху