ЗАДАНИЕ 1: Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы.
Опишите класс Sweetmeats ( название,стоимость, срок годности и магазин, в котором имеются эти конфеты). Введите с клавиатуры данные в массив, состоящий из n элементов типа Sweetmeats .Выведите на экран информацию из ассортимента конфет, выпускаемых чебоксарской кондитерской фабрикой, выбрать те, стоимость которых от 130 до 255 руб. за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.списка.
Задание 2: В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (в первом столбце — зарплата за январь, во втором — за февраль и т. д.). Составить программу для расчета средней зарплаты за любой месяц
Язык C#
var
n, s, i: integer;
x: array[1..100]of integer;
answer: string;
begin
readln(n);
for i := 1 to n do
read(x[i]);
readln(s);
answer := IntToStr(s) + ' = ';
for i := n downto 1 do
begin
answer := answer + IntToStr(s div x[i]) + '*' + IntToStr(x[i]);
s := s mod x[i];
if i > 1 then
answer := answer + ' + ';
end;
if s <> 0 then
writeln('NO')
else
writeln(answer);
end.
Более полный и правильный вариант решения, но и куда более сложный
//PascalABC.Net 3.1 сборка 1200
uses System.Collections.Generic;
uses System;
var
x := new List<integer>;
c := new List<Tuple<string, integer>>;
procedure getParcelling(sum, step: integer; coefficients: string; count: integer);
begin
if step >= x.Count then begin
if sum = 0 then c.Add((coefficients, count));
Exit;
end;
if step < 0 then step := 0;
for var j := 0 to (sum div x[step]) do
begin
var s := '';
if j > 0 then begin
if step > 0 then s += ' + ';
s += IntToStr(j) + '*' + IntToStr(x[step]);
end;
getParcelling(sum - x[step] * j, step + 1, coefficients + s, count + j);
end;
end;
begin
x := ReadArrInteger('x:', ReadInteger('n =')).ToList;
var sum := ReadInteger('sum =');
getParcelling(sum, 0, '', 0);
if c.Count = 0 then
writeln('No')
else begin
var min := c.Min(cc -> cc.Item2);
Println(c.Where(cc -> cc.Item2 = min));
end;
end.
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString('>');
var p:=s.Select((x,i)->(x,i+1)).Where(x->x[1].IsOdd and (x[0]=' '));
Writeln('Число пробелов на начетных местах равно ',p.Count);
foreach var t in p do s[t[1]]:='*';
Writeln(s)
end.
Пример
> А роза упала на лапу Азора
Число пробелов на начетных местах равно 3
А роза*упала*на лапу*Азора
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString('>');
var n:=s.Length;
if n mod 4<>0 then Writeln('Кол-во символов не кратно 4')
else begin
var i:=1;
repeat
Swap(s[i],s[i+3]);
Swap(s[i+1],s[i+2]);
i+=4
until i>n;
Writeln(s)
end
end.
Пример
> карандаш
аракшадн