Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Turbo Pascal] расчетная ведомость... 
:(
    Опции темы
Stiudent
Дата 24.9.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



Акт инвентаризации материальных ценностей содержит шесть наименований предметов (шкаф, стол и т.д.), их количество и стоимость. Вывести на экран данные акта и суммарную стоимость по наименованиям.
Исходные данные ввести с клавиатуры.
)))
PM MAIL   Вверх
Letov
Дата 24.9.2009, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: 4
Всего: 4



Код
program akt;
uses crt; {Модуль, используемый для очистки экрана процедурой clrscr;}
var names: array[1..6] of string;
    number:array[1..6] of integer;
    cost: array[1..6] of real;
    i: integer;
    amount, all_: real;
begin
all_ := 0;
for i := 1 to 6 do {Ввод данных}
begin
    writeln(i, ': name: ');
    readln(names[i]);
    writeln('number: ');
    readln(number[i]);
    writeln('cost: ');
    readln(cost[i]);
end;
clrscr;{Очищаем экран}
writeln('N | name | number | cost | amount');{Шапка таблицы}
for i := 1 to 6 do
begin
    amount := number[i]*cost[i]; {Стоимость}
    writeln(i, ' | ', names[i], ' | ', number[i], ' | ', cost[i]:5:2, ' | ', amount:5:2);{Выводим строку таблицы}
    all_ := all_ + amount; {Сумма}
end;
writeln('All: ', all_:5:2); {Вывод суммы}
readln;
end.


Это сообщение отредактировал(а) Letov - 26.9.2009, 19:24


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Stiudent
Дата 26.9.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



Это всё? )))
 smile 
А пожалуйста объясните с начало как это работает? smile 
PM MAIL   Вверх
Letov
Дата 26.9.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: 4
Всего: 4



Вроде все откомментировано.

Код

    names: array[1..6] of string; {Тут храним имена предметов}
    number:array[1..6] of integer; {Тут храним их количество}
    cost: array[1..6] of real; {Тут храним цену одного экземпляра}
    i: integer; {Вспомогательная переменная для циклов}
    amount, all_: real; {Стоимость конкретного предмета и стоимость всех предметов соответственно}

{...}


all_ := 0;{Обнуляем общую стоимость}
for i := 1 to 6 do {Ввод данных}
begin
    writeln(i, ': name: '); 
    readln(names[i]); {Ввод названия предмета с номером i}
    writeln('number: ');
    readln(number[i]); {Ввод количества предметов с номером i}
    writeln('cost: ');
    readln(cost[i]); {Ввод цены предмета с номером i}
end;


А дальше просто выводим полученные данные (см. первый пост).

Это сообщение отредактировал(а) Letov - 26.9.2009, 19:23


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Stiudent
Дата 26.9.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



Цитата(Letov @  26.9.2009,  19:01 Найти цитируемый пост)
writeln(i, ': name: '); 

А почему только в этом операторе в начале стоит i, а в остальных таких нет?
PM MAIL   Вверх
Letov
Дата 26.9.2009, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: 4
Всего: 4



В этом операторе i выводит номер предмета, для которого необходимо ввести информацию. Точно также тут:
Код

writeln(i, ' | ', names[i], ' | ', number[i], ' | ', cost[i]:5:2, ' | ', amount:5:2);{Выводим строку таблицы}



--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Stiudent
Дата 27.9.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



 smile  
Мне это через TYPE, record...
нужно 
PM MAIL   Вверх
Letov
Дата 27.9.2009, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: 4
Всего: 4



Тогда так:

Код

type
TMyType = record
    name: string;
    number: integer;
    cost: real;
    amount: real;
end;

var
   Data: array[1..6] of TMyType;


Обращаться к полям следующим образом:
Код

Data[i].name
Data[i].number
{и т.д.}



--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Stiudent
Дата 27.9.2009, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



Я вам наверное надоел...
Но я не понял... smile 
PM MAIL   Вверх
Letov
Дата 27.9.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: 4
Всего: 4



Код

program akt;
uses crt; {Модуль, используемый для очистки экрана процедурой clrscr;}
type
TMyType = record
    name: string;
    number: integer;
    cost: real;
    amount: real;
end;

var
   Data: array[1..6] of TMyType;
var i: integer;
    all_: real;
begin
all_ := 0;
for i := 1 to 6 do {Ввод данных}
begin
    writeln(i, ': name: ');
    readln(Data[i].name]);
    writeln('number: ');
    readln(Data[i].number);
    writeln('cost: ');
    readln(Data[i].cost);
end;
clrscr;{Очищаем экран}
writeln('N | name | number | cost | amount');{Шапка таблицы}
for i := 1 to 6 do
begin
    Data[i].amount := Data[i].number*Data[i].cost; {Стоимость}
    writeln(i, ' | ', Data[i].name, ' | ', Data[i].number, ' | ', Data[i].cost:5:2, ' | ', Data[i].amount:5:2);{Выводим строку таблицы}
    all_ := all_ + Data[i].amount; {Сумма}
end;
writeln('All: ', all_:5:2); {Вывод суммы}
readln;
end.


Это сообщение отредактировал(а) Letov - 27.9.2009, 23:36


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Stiudent
Дата 28.9.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 13.9.2009

Репутация: нет
Всего: нет



Letov
Спасибо большое!!! smile  smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.