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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2008, 01:41   #1
Cartman18
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 28
По умолчанию Работа с указателями в паскале

Вот есть задчка :
1. Дано следующее описание:
const N = 100;
type
realmas = Array [1..N] of Real;
var q: ^realmas; k:integer;
realfile: File of Real;
Организовать печать в обратном порядке элементов вещественного файла до элемента, номер которого равен k.
Помогите(((( скоро сессия! Заранее спасибО!
Cartman18 вне форума Ответить с цитированием
Старый 12.05.2008, 08:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как пробовал? Просто есть несколько разных способов, мало ли какое у тебя задание.
Кстати указатели тут не при чем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2008, 09:30   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
Кстати указатели тут не при чем.
многоуважаемый Stilet, позвольте с Вами не согласиться.. ИМХО, речь идёт о том, чтобы создать динамически в памяти массив q ( New(q) ) и читать в него последовательно числа из файла, считая, сколько прочитал. После чего выводить из массива, начиная с последнего и уменьшая счётчик, пока счётчик не станет равным введённому пользователем числу K
Лень расписывать полностью, но, типа так:
Код:
const N = 100;
type 
  realmas = Array [1..N] of Real;
var 
  q: ^realmas; 
  k:integer;
  Count:integer;
  realfile: File of Real;
begin
   WriteLn('Введите K');
   Readln(K);
   Assign(realfile, 'MyRFile.dat');
   Reset(realfile,1);
   New(q);
   Count:=0;
   while Not Eof(realfile) do
   begin
      Inc(Count);
      Read(q^[Count]);
   end;
   Close(realfile);
   while Count>=K do begin
      WriteLn(q^[Count]);
       Dec(Count);
   end;
   Dispose(q);
end.

Последний раз редактировалось Serge_Bliznykov; 12.05.2008 в 09:31. Причина: забыл закрыть входной файл!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2008, 09:43   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

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

Хотя конечно лего только преподы не понавыдумывают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами в паскале Andris Помощь студентам 7 29.05.2009 21:56
Помогите пожалуйста с динамической памятью и указателями Riddick2013 Помощь студентам 1 19.12.2007 14:41
проблема с указателями =\ shad0w Общие вопросы C/C++ 9 09.12.2007 03:36
Проблема с указателями novicer Общие вопросы Delphi 5 17.06.2007 00:21
Проектная работа на Паскале Egych Помощь студентам 2 29.04.2007 22:17