2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 работа с посыланием
Сообщение16.03.2009, 18:12 


02/03/09
50
подскажите пожалуйста код с посыланием к задаче - В массиве из n чисел найти наименьшое четное число! пожалуйста

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:26 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Я не понимаю, что такое "код с посыланием", ну да ладно.

В чем конкретно проблема - придумать алгоритм или запрограммировать его (и на каком языке, кстати?). Учтите, что задача наипростейшая, а такие здесь за других решать не принято.

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:27 
Заблокирован
Аватара пользователя


07/08/06

3474
Если это Паскаль, то такого термина я там не помню...

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:32 


02/03/09
50
ну типа в задании написано - нужно зделать програму при помощи посыланий(ну или указаний)

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:36 
Заблокирован
Аватара пользователя


07/08/06

3474
Может работа со ссылками имеется в виду? Что-то типа "myvar^.next"? Тогда достаточно синтаксис посмореть.

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:39 


02/03/09
50
ну типа в оглашении пишем
type
massiv=array[1..100] of integer;
....
var
a:^massiv; ).....и так само делаем вычисление в программе

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:47 
Заблокирован
Аватара пользователя


07/08/06

3474
А, ну значит так оно и есть - работа со ссылками. Там вроде придётся использовать new для выделения памяти, dispose - для освобождения. Доступ к элементам - тоже через стрелку. Можете ориентироваться на вот этот пример:
Код:
   {Динамическое выделение памяти с использованием функций New и
    Dispose.}
    program Sample;

    type
      pntr = ^RecType;
      RecType = array[1..40] of integer;
    var
      p: pntr;
      t: integer;

    begin
      New(p);
      for t: = 1 to 40 do p^[t]: = t*2;
      for t: = 1 to 40 do Write(p^[t], ' ');
      WriteLn;
      Dispose(p);
    end.

А алгоритм поиска минимального элемента уж составите сами. Чётные и нечётные различает вроде функция odd.

 Профиль  
                  
 
 
Сообщение16.03.2009, 18:50 


02/03/09
50
спасибо

 Профиль  
                  
 
 
Сообщение16.03.2009, 19:36 
Заслуженный участник


18/03/07
1068
sv2311 в сообщении #195630 писал(а):
ну типа в оглашении пишем…


AlexDem в сообщении #195634 писал(а):
Код:
Dispose(p);


Оглашеннии, изыдите :).

 Профиль  
                  
 
 
Сообщение17.03.2009, 00:47 


02/03/09
50
program l_22;
uses crt;
var a,chet:array [1..100] of integer;
i,k,min,n:integer;
begin
clrscr;
writeln('Введите количество элементов маcсива');readln(n);
for i:=1 to n do
begin
write('a[',i,']='); read(a[i]);end;
k:=0;
for i:=1 to n do
begin
if a[i] mod 2=0
then
begin
k:=k+1;
chet[k]:=a[i];
min:=chet[1];
for i:=2 to n do
if chet[k]<min then min:=chet[k];
writeln('min=',min);
readkey;
end;end;
end.
как его переделать под эти указатели? - помогите плиз((

 Профиль  
                  
 
 
Сообщение17.03.2009, 13:33 
Заблокирован
Аватара пользователя


07/08/06

3474
А что осталось непонятным? Откройте учебник или лекции и посмотрите... Вместо a[i] пишете a^[i], это означает "взять из указателя a адрес и по нему взять i-тый элемент типа integer". И не забыть выделить и освободить память - это всё.

А Вашу программу я бы упростил - массив chet там не нужен. Подойдёт обычная программа поиска минимума с дополнительным условием if a[i] mod 2=0 (ну или функцией odd вместо a[i] mod 2). Только надо не забыть, что чётных чисел в массиве может и не быть.

 Профиль  
                  
 
 
Сообщение17.03.2009, 17:27 


02/03/09
50
спасибо,но я уже и так здал и вместе с масивом chet!

Добавлено спустя 2 минуты 54 секунды:

вот так выглядит прога,просто я думал что с указателями будет программа намного масовей,а так она простая
program l_22;
uses crt;
type massiv=array [1..100] of integer;
var a,chet:^massiv;
i,k,min,n:integer;
begin
clrscr;
writeln('Введите количество элементов маcсива');readln(n);
for i:=1 to n do
begin
write('a[',i,']='); read(a^[i]);end;
k:=0;
for i:=1 to n do
begin
if a^[i] mod 2=0
then
begin
k:=k+1;
chet^[k]:=a^[i];
write(chet^[k], ' ');
end;
end;
min:=chet^[1];
for k:=2 to n do
if chet^[k]<min then min:=chet^[k];
writeln('min=',min);
readkey;
end.

 Профиль  
                  
 
 
Сообщение17.03.2009, 17:32 
Заблокирован
Аватара пользователя


07/08/06

3474
На месте компьютера я бы завис...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group