![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Galka |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Помогите не могу решить задачу. Вот условие:
Дан массив звписей, содержащих сведения о заказах в ателье пошива одежды. Разработать структуру записи и посчитать среднюю стоимость заказа. Я тут чего зря понаписала: Код program mas; type fabrica = record par1,par2,par3: 1..3; value,sebest,price:integer; sst:real; end; var a:array[1..3] of fabrica; i:integer; begin for i:=1 to 3 do with a[i] do begin writeln ('vvedite dannye'); readln(par1,par2,par3); sst:=(par1+par2+par3)/3; writeln(sst); end; end. |
![]() ![]() |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата par1,par2,par3: 1..3; Это что такое? почему в пределах от 1 до 3? sst:real;
Почему средняя стоимость заказа торчит в записи? |
Galka |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Код par1,par2,par3: 1..3; это какие то параметры по которым и вычисляется средняя стоимость, но они почему то не в массиве, вобщем я какие то куски собрала из похожих программ вот и получилось не понятно что ![]() а среднюю стоимость уберу из записи ![]() мне бы пример составления массива с этими записями... |
Krjuger |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Да и почему sst выводится на экран в цикле??И вообще напиши что в твоем понимании означает каждая переменная,так легче понять будет.Тебе тогда дельный совет дадут вместо кучи вопросов.
Так давай рассуждать...У тебя есть список заказов,чем у тебя обзадает каждый заказ??У заказа, как я понимаю, есть номер(сведения) и его цена.Или у тебя есть заказ,состоящий из каких либо вещей и их цена.если второй вариант,то ты создаеш какую нибудь переменную в которую записываеш всю стоимость заказа и какой нибудь счетчик,и в итоге средней стоимостью будет сумма стоимосттец вещей, деленная на счетчик. Более того,ты говориш что у тебя данн массив,а ты вводиш его с клавиатуры.Если массив дан, то чаще всего его надо считывать из файла,так что тоже уточни. Сообщение отредактировано: Krjuger - 19.05.2009 16:09 |
Ozzя |
![]()
Сообщение
#5
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата о заказах в ателье пошива одежды. Разработать структуру записи Сумасйоти! ![]() ![]() Вы хоть на пальцах объясните, что там заказывают и какова структа заказа? |
Krjuger |
![]()
Сообщение
#6
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Цитата Цитата о заказах в ателье пошива одежды. Разработать структуру записи Сумасйоти! И девочка спрашивает у нас какие там, в ателье заказы Вы хоть на пальцах объясните, что там заказывают и какова структа заказа? +1 однако)) Галка тебе нужен пример массива.В общем массив обладает номером названием товара и ценой
type
fabrica = record
number,price:integer;
name:string;
end;
var
a : array of fabrica;
S,n,midl:integer;
begin
n:=1;
while not eof(fin) do
begin
read(fin,a[n].nuber);
read(fin,a[n].name);
read(fin,a[n].price);
S:=S+a[n].prise;
n:=n+1;
end;
midl:=S/n;
writeln(midl);
end.
В общем как то так....За правильность не отвечаю,давно это было.Если что сторожилы поправят. Сообщение отредактировано: Krjuger - 19.05.2009 16:29 |
Galka |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Krjuger, спасибо, только вот тут
while not eof(fin) do
на fin - unknown identifier Сообщение отредактировано: Galka - 19.05.2009 16:40 |
Ozzя |
![]()
Сообщение
#8
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не, думается так
Сама запись: Order = record
NomerZakaz: Integer;
price : real; // цена
naim : string; // наименование товара
// еще необходимые поля/
end;
var
zakaz:array [1..n] of order;
...
читаем в цикле пока не конец файла
в массив
...
summa:=0;
for i:=1 to n do
begin
....
summa:=summa+ zakaz[i].price;
end;
summa:=summa/n;
Добавлено через 1 мин. Цитата на fin - unknown identifier fin : file of fabrica; ? Сообщение отредактировано: Ozzя - 19.05.2009 16:42 |
Krjuger |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Тогда это уже никакой не массив записей а обычный одномерный массив.
Цитата var a:array[1..3] of fabrica; Цитата readln(zakaz1,zakaz2,zakaz3); P.s. Дадада я забыл в var описать fin:text; убейте меня за это,плюс как выяснилось эй это и не надо. P.P.s.Ozzя ты лучше мою задачку посмотри(стек и дек),а эту я ей, если что сделаю.Кстати озя твой вариант не сильно отличается от моего,но у него есть один существенный минус.У тебя 2 цикла от 1 до n,а у меня один так что твоя медленней,пусть,если учиться прогать,то сразу грамотно,а то от привычек тяжело отучиваться,по себе знаю. Сообщение отредактировано: Krjuger - 19.05.2009 17:03 |
Galka |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Всем спасибо большое
![]() сделала вот так: program mas;
type fabrica=record
kol1,kol2,kol3:integer;
cena1,cena2,cena3: integer;
end;
var a: array [1..1] of fabrica;
y: integer; i:integer;
begin
y:= 0;
for i:=1 to 1 do begin
writeln('vvedite kolichestvo zakazov na platie '); readln(a[i].kol1);
writeln('vvedite kolichestvo zakazov na bruki'); readln(a[i].kol2);
writeln('vvedite kolichestvo zakazov na ubki'); readln(a[i].kol3);
writeln('vvedite cenu na platie'); readln(a[i].cena1);
writeln('vvedite cenu na bruki'); readln(a[i].cena2);
writeln('vvedite cenu na ubku'); readln(a[i].cena3);
end;
for i:=1 to 1 do begin
with a[i] do
y:=(y + (cena1*kol1) + (cena2*kol2) + (cena3*kol3))/3;
end;
writeln('srednya stoimost ', y , ' rub.');
readln;
end.
вроде работает ![]() Сообщение отредактировано: Galka - 19.05.2009 17:50 |
Krjuger |
![]()
Сообщение
#11
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Блин у тебя мания цыкла fоr какая то.Зачет тебе цикл от 1 до 1,это значит что он будет выполятся всего 1 раз при значении i равном 1,цикл нужен будет если таких заказов будет 10, например.Затем ,когда пишеш массив,если он у тебя строго 1 значение хранит,то зачем писать[1..1] это просто безграмотно,[1] и все,не надо мудрить.
program mas;
type
fabrica=record
kol : integer;
cena : integer;
end;
var
a: array [1..3] of fabrica;
y, i:integer;
begin
y:= 0;
for i:=1 to 3 do
begin
writeln('vvedite kolichestvo zakazov '); readln(a[i].kol);
writeln('vvedite cenu'); readln(a[i].cena);
y:=y + cena*kol;
end;
y:=y/3;
writeln('srednya stoimost ', y , ' rub.');
readln;
end.
Вот так будет выглядеть получше,правда я не уверен что тебе это надо уже) |
Galka |
![]()
Сообщение
#12
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Krjuger спасибо большое!!!!!!!! так намного лучше и понятнее
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 23:35 |