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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 00:47   #1
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию Pascal(циклы и массивы)

Помогите с написанием программ.
Циклы:
1. Дана последовательность вещественных чисел а1, a2, ..., а15. Определить, есть ли в последовательности отрицательные числа. В случае положительного ответа определить порядковый номер первого из них.
2. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:
а) сумму всех чисел последовательности, больших числа х;
б) количество всех четных чисел последовательности.
3.Найти натуральное число из интервала от а до b с максимальной суммой делителей.

Массивы:
1. Дан двухмерный массив целых чисел.
а) Последний четный элемент каждого столбца уменьшить на 1 (предполагается, что в каждом столбце есть четный элемент).
б) Первый нулевой элемент каждой строки заменить числом –1 (предполагается, что в каждой строке есть нулевой элемент).
2.Поменять местами второй столбец и столбец, в котором находится последний элемент, больший 100. Принять, что элементы, большие 100, в массиве есть, и что массив просматривается слева направо и сверху вниз.
3. В двухмерный массив записали годовые оценки по десяти предметам за 9-й класс каждого из 25 учеников класса (в первой строке — оценки первого ученика, во второй — второго и т. д.). В начале нового учебного года в класс пришел новый ученик. Изменить массив так, чтобы в нем были оценки за 9-й класс и нового ученика, учитывая, что этот ученик в списке должен быть на s-м месте. Оценки нового ученика вводятся с клавиатуры и в дополнительный массив записываться не должны.
Rulyas вне форума Ответить с цитированием
Старый 26.01.2009, 01:05   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая:
Код:
uses crt;
const n = 15;
var
a : array[1..n] of real;
i : integer;
begin
clrscr;
randomize;
for i:=1 to n do
  begin
  a[i] := random()*10-4;
  write(a[i]:5:1);
  end;
writeln;
writeln('-------');
{------}
for i:=1 to n do
  if a[i]<0 then
    begin
    writeln(i,'-e chislo - otricatelnoe (',a[i]:4:1,')');
    break;
    end;
readln;
end.
Прочитайте правила!
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 01:20   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вторая:
Код:
uses crt;
const n = 50;
var
a : array[1..n] of integer;
i,x,sum,kolchet : integer;
begin
clrscr;
randomize;
i:=0;
repeat
  inc(i);
 a[i]:=random(15)-6;
 write(a[i]:4);
until a[i]=-1;
{----------}
writeln;
write('Vvedite x: ');
readln(x);
sum := 0;
kolchet := 0;
i:=0;
repeat
 inc(i);
 if a[i]>x then sum := sum + a[i];
 if a[i] mod 2 = 0 then inc(kolchet);
until a[i] = -1;
writeln('Sum = ',sum);
writeln('Kolichestvo chetnyh elementov: ',kolchet);
{----------}

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 01:30   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Третья:
Код:
uses crt;
var
a,b,tmp,max,k : integer;

function sumdelit(m : integer) : integer;
 var sum,i : integer;
 begin
 sum := 0;
 for i:=1 to trunc(m/2) do
   if m mod i = 0 then
     sum := sum + i;
 sumdelit := sum;
 end;

begin
clrscr;
write('Vvedite a: ');
readln(a);
write('Vvedite b: ');
readln(b);
max := 0;
k := 0;
while a<b do
  begin
  tmp := sumdelit(a);
  if tmp > max then
   begin
   k := a;
   max := tmp;
   end;
  inc(a);
  end;
writeln('Result: ',k,' (summa deliteley= ',max,')');
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 01:44   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Четвертая:
Код:
uses crt;
const n = 5;
var
mas : array[1..n,1..n] of integer;
i,j : integer;
begin
clrscr;
randomize;
for i:=1 to n do
  begin
  for j:=1 to n do
    begin
    mas[i,j] := random(5)-2;
    write(mas[i,j]:4);
    end;
  writeln;
  end;
writeln('-------');
{------------}
for j:=1 to n do
 begin
 for i:=n downto 1 do
  if mas[i,j] mod 2 = 0 then
    begin
    dec(mas[i,j]);
    break;
    end;
 end;
{-----}
for i:=1 to n do
  begin
  for j:=1 to n do
   if mas[i,j] = 0 then
     begin
     mas[i,j] := -1;
     break;
     end;
  end;
{----------}
for i:=1 to n do
  begin
  for j:=1 to n do
   write(mas[i,j]:4);
  writeln;
  end;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 01:56   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Пятая:
Код:
uses crt;
const n = 5;
var
matr : array[1..n,1..n] of integer;
i,j,k,tmp : integer;
begin
clrscr;
randomize;
for i:=1 to n do
  begin
  for j:=1 to n do
    begin
    matr[i,j] := random(10)+95;
    write(matr[i,j]:6);
    end;
  writeln;
  end;
writeln('--------');
{----------}
k := 1;
for j:=1 to n do
  begin
  for i:=1 to n do
   if matr[i,j] > 100 then k:=j;
  end;
{-----}
for i:=1 to n do
 begin
 tmp := matr[i,2];
 matr[i,2] := matr[i,k];
 matr[i,k] := tmp;
 end;
{----}
for i:=1 to n do
 begin
 for j:=1 to n do
  write(matr[i,j]:6);
 writeln;
 end;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 02:22   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Шестая. Для проверки лучше уменьшить значения m (количество учеников) и n (количество оценок)
Код:
uses crt;
const m=25; n=10;
var
mas : array[1..m+1,1..n] of integer;
s,i,j : integer;
begin
clrscr;
randomize;
for i:=1 to m do
  begin
  for j:=0 to n do
    begin
     if j=0 then write(i:2,' | ')
     else
      begin
      mas[i,j] := random(4)+2;
      write(mas[i,j]:3);
      end;
    end;
  writeln;
  end;
writeln('-------');
{---------}
writeln('Prishel novyj uchenik. Vvedite nomer:');
readln(s);
writeln('Vvodite ocenki:');
for j:=1 to n do
  begin
  for i:=m+1 downto s do
   mas[i,j] := mas[i-1,j];
  readln(mas[s,j]);
  end;
{---------------}
writeln;
for i:=1 to m+1 do
  begin
  for j:=0 to n do
   begin
   if j=0 then write(i:2,' | ')
   else write(mas[i,j]:3);
   end;
  writeln;
  end;

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 03:36   #8
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию шестая - наиболее интересная: открыла для меня кое-что новое :)

Код:
program capta1n;
const
  n = 25;
  m = 9;
type
  mark = 2..5;
  marks = array [1..m] of mark;
  student = array [1..n+1] of ^marks;
var
  A : ^student;
  i,k : byte;
  s : 1..n+1;
begin
  new(A);
  randomize;
  for i:=1 to n do
  begin
    new(A^[i]);
    for k:=1 to m do
    begin
      A^[i]^[k]:=random(4)+2;
      write (A^[i]^[k],'|')
    end;
    writeln
  end;
  writeln; writeln;

  write ('Vvedite nomer mesta: '); readln(s);
  new(A^[n+1]);
  for i:=n downto s do
   for k:=1 to m do
    A^[i+1]^[k]:=A^[i]^[k];
  for k:=1 to m do A^[s]^[k]:=5;
  for i:=1 to n+1 do
  begin
    for k:=1 to m do write (A^[i]^[k],'|');
    writeln
  end;

  readln;
end.
Специально не делал ввод оценок - посчитал, что суть не в этом, а самом формировании динамического массива

Последний раз редактировалось capta1n; 26.01.2009 в 03:38.
capta1n вне форума Ответить с цитированием
Старый 26.01.2009, 17:47   #9
Rulyas
 
Регистрация: 26.01.2009
Сообщений: 8
По умолчанию

Спасибо большое за помощь
Rulyas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на циклы - Pascal die_hard Помощь студентам 13 26.10.2008 17:19
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07
Вопрос массивы и циклы probmat Помощь студентам 7 16.03.2008 13:35
Pascal. Массивы Danilyuk Помощь студентам 1 22.01.2008 19:56