Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Массивы!


Автор: ArtemkApro 13.5.2009, 15:19
Очень нужна помощь в решение задач=)
1.Дан массив целых чисел из n элементов, заполненный случайным образом.
Удалить из него все элементы кратные7 и принадлежащие промежутку [а;b]
2.Дан массив целых чисел из N элементов заполненных случайным образом, 
удалить из него все элементы первая и последняя цифра которых четная

Автор: Chazer 13.5.2009, 16:23
Задача 1.
Если под удалением понимать, например, присвоение удаляемому элементу 0 - тогда воть:
Код

const n=25; {Задаем размеры массива.}
    tab=4;{Размер отступа при выводе матрицы}
    max=100; {Указываем "потолок" значений
                 в матрице}
var mass:array[1..n]of integer;
    a,b:integer;
{Инициализация матрицы}
procedure Init;
var i:integer;
begin
    randomize;
    for i:=1 to n do mass[i]:=random(max);
end;

{Поиск и удаление}
procedure find_and_remove;
var i:integer;
begin
    for i:=1 to n do
        if (mass[i]>=a)and(mass[i]<=b)and(mass[i]mod 7=0)then
        mass[i]:=0;
end;

{собсно, вывод на экран}
procedure Print;
var i:integer;
begin
    for i:=1 to n do
        write(mass[i]:tab);
    writeln;
end;

begin
Init;
writeln('Массив:');
Print;
writeln('Введите границы (a,b):');
readln(a,b);
find_and_remove;
writeln('Массив после удаления элементов:');
Print;
readln;
end.


P.S. ArtemkApro, на будущее: читайте правила форума: одна тема - один вопрос.

Автор: ArtemkApro 13.5.2009, 16:39
Спасиб=)Я просто что-то не заметил этого поста в правилах, простите меня... smile 
А что со второй задачей?

Автор: Chazer 13.5.2009, 16:51
Задача №2.
Также удаленный элемент заменяется на 0.
Код

program temp;

{$APPTYPE CONSOLE}

uses SysUtils;
const n=25; {Задаем размеры массива.}
    tab=4;{Размер отступа при выводе матрицы}
    max=100; {Указываем "потолок" значений
                 в матрице}
var mass:array[1..n]of integer;
{Инициализация матрицы}
procedure Init;
var i:integer;
begin
    randomize;
    for i:=1 to n do mass[i]:=random(max);
end;

{Поиск и удаление}
procedure find_and_remove;
var i,a,b:integer;
    tmp,tmp2:string;
begin
    for i:=1 to n do
    begin
  tmp:=IntToStr(mass[i]);
  a:=StrToInt(tmp[1]);
  b:=StrToInt(tmp[length(tmp)]);
  if(a mod 2 = 0)and(b mod 2 = 0)then mass[i]:=0;
  end;    
end;

{собсно, вывод на экран}
procedure Print;
var i:integer;
begin
    for i:=1 to n do
        write(mass[i]:tab);
    writeln;
end;

begin
Init;
writeln('Массив:');
Print;
find_and_remove;
writeln('Массив после удаления элементов:');
Print;
readln;
end.

Автор: ArtemkApro 17.5.2009, 20:02
Я что-то не могу разобраться совсем smile .Я вставляю эти коды в дельфи, а программа у меня не работает...что делать?

Автор: ArtemkApro 17.5.2009, 21:36
Подскажите что делать:(((((

Автор: Katerinka986 18.5.2009, 15:26
Здравствуйте))
Найти сумму положительных элементов массива, имеющих индекс 3, 5, 7 и т.д написать программу.(Excel)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)