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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2008, 21:27   #1
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
Лампочка паскаль l помогите доделать задачу по одномерн массиву

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

обозначения мои:
An-добыча нефти по первой скважине
Bv-добыча воды по первой скважине
Cn-добыча нефти по второй скважине
Dv-добыча воды по второй скважине
ps: и если кто знает как вывести в текс докум то добаввте сбда пожалуйста

program prinerpenl;
uses crt;
const n=17;
type mas1= array [1..17] of integer

const An:masl=(здесь 17 любых чисел);
Bv: masl=(здесь 17 любых чисел);
Cn: masl=(здесь 17 любых чисел);
Dv: masl=(здесь 17 любых чисел);

Var d,b : mas1;
I :integer;
Min :integer;

Begin

Min:=maxint;

For i:=l to n do begin
B[i]:=An[i]+Bv[i];
Writeln(‘1u2=’ ,b[i]);
End;

For i:=l to n do begin
d[i]:=Cn[i]+Dv[i];
Writeln(‘3u4=’ ,d[i]);
End;

If B[i]<min then min:=B[i];
Writeln (min);
End.
braza вне форума Ответить с цитированием
Старый 26.04.2008, 22:07   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

для вывод в текстовый документ добавьте в var:
t: text;
а в код:
Код:
assign(t,'путь к вашему файлу');
rewrite;
for i:= 1 to n do
write(B[i],' ');
for i:= 1 to n do
write(D[i],' ');
writeln('min = ',min);
close(t);
ЗЫ Незабудьте создать сам текстовый файл и указать к нему путь в функции assign
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 26.04.2008, 22:14   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

If B[i]<min then min:=B[i];
Writeln (min);
Так воды или нефти? Али и того и того?
А текст это делается так
Код:
var t: text;
...
begin
...
assign(t, имя_файла);
rewrite(t);
for I := 1 to 17 do writeln(t, B[I]);
close(f)
end.
eoln вне форума Ответить с цитированием
Старый 26.04.2008, 22:19   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от -=<[Evklidd]>=- Посмотреть сообщение
для вывод в текстовый документ добавьте в var:
t: text;
а в код:
Код:
assign(t,'путь к вашему файлу');
rewrite;
for i:= 1 to n do
write(B[i],' ');
for i:= 1 to n do
write(D[i],' ');
writeln('min = ',min);
close(t);
ЗЫ Незабудьте создать сам текстовый файл и указать к нему путь в функции assign
Не хватает тут параметров - работа не с файлом, а с эраном, да и файл даже не создастся.
Надо rewrite(t, имя_файла);
И когда записываем тоже, во-первых, write(t, B[I]);
А во-вторых не write, а writeln - иначе всё одной строкой пойдёт
eoln вне форума Ответить с цитированием
Старый 26.04.2008, 22:42   #5
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

to eoln: да ты прав, просто на паскале давно не работал, да и код прям на форуме писал. А насчет строчки - элементы массива и должны быть написаны в строчку, а то по-твоему 34 строки будет + строка для min
ЗЫ У тя у самого ошибка есть: не close(f), а close(t)

Последний раз редактировалось -=<[Evklidd]>=-; 26.04.2008 в 22:46.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 26.04.2008, 22:56   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

-=<[Evklidd]>=- : На счёт close(t) и close(f) ты прав - опечатка.
Но если делать write(t,... , а не writeln(t,... , то например если исходные данные были числа 5 9 20 45, то как файл читать? Однозначные и двузначные числа путаются, а разделитель в виде пробела искать надо pos(' ',stroka). Куда гораздо проще ни о чём не думая делать writeln, а на экран write - а то строчки на экране кончаться
eoln вне форума Ответить с цитированием
Старый 26.04.2008, 22:58   #7
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию

ну с выводом текста я уже разберусь, а вот когда программу напечатал то он не выдает мне ответ - просто чёрный экран. Подскажите что не так в записи у меня

Последний раз редактировалось braza; 26.04.2008 в 23:01.
braza вне форума Ответить с цитированием
Старый 26.04.2008, 23:05   #8
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Полный код в студию пожалста
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 26.04.2008, 23:05   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

В моём листинге всё пишется в файл
Пример
write(t, 'hello') - записывается в файл t
write('hello') - записывается на экран
Если надо вывести min на экрат но пиши так
Код:
writeln('min znachenie = ',min,' kilogramm')
Т.к. t здесь нет, то всё пойдёт на экран
eoln вне форума Ответить с цитированием
Старый 27.04.2008, 00:06   #10
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию

Цитата:
Сообщение от -=<[Evklidd]>=- Посмотреть сообщение
Полный код в студию пожалста
program prinerpenl;
uses crt;
const n=17;
type mas1= array [1..17] of integer;

const An :masl=(цифры);
Bv: masl=(цифры);
Cn: masl=(цифры);
Dv: masl=(цифры);

Var d,b : mas;
I :integer;
Min :integer;

Begin

Min:=maxint;

For i:=1 to n do begin
B[i]:=An[i]+Bv[i];
Writeln(‘1u2=’ ,b[i]);
End;

For i:=l to n do begin
d[i]:=Cn[i]+Dv[i];
Writeln(‘3u4=’ ,d[i]);
End;

If B[i]<min then min:=B[i];
Writeln (min);
End.
braza вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите доделать задачу motaro Фриланс 3 09.06.2008 19:59
Помогите доделать задачу!!!! Vincenzo Паскаль, Turbo Pascal, PascalABC.NET 4 11.05.2008 09:35
помогите доделать задачу по массиву braza Паскаль, Turbo Pascal, PascalABC.NET 7 06.05.2008 09:37
помогите доделать(исправить) задачу по массиву braza Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2008 19:54
Помогите доделать задачу на класс molodzo Общие вопросы C/C++ 2 20.11.2007 09:31