Чтение Задание 1. Прочитай текст. Английский плюс CD-ROM: блок 9 более высокий тест. Торговый центр Mall of America-это действительно большой торговый центр в США. Это больше, чем любой торговый центр в Европе! Расстояние до торгового центра составляет 390 000 метров?. Он имеет семь этажей и 52 Шора. Здесь четырнадцать кинотеатров и двадцать ресторанов, в торговом центре нет ни одной гостиницы, зато есть железнодорожный вокзал и автовокзал. В городе Миннеаполис есть несколько отелей. Город находится примерно в тридцати минутах езды от торгового центра. Меня зовут Бет, и моя семья живет в Миннеаполисе. Мы очень любим ходить по магазинам, и торговый центр-наше любимое место! Пишите правильно или неправильно: 1. Торговый центр Америки огромен 2. Торговый центр Америки находится в США 3. 3. На одном этаже расположены 52 магазина. 4. В торговом центре " 5 " есть места для фильмов. Бет не очень любит ходить по магазинам ответьте на этот во Насколько велик торговый центр Америки? 7. Сколько времени нужно, чтобы добраться от Миннеаполиса до торгового центра? письменные задания. Выберите одну из следующих тем. Йо вы должны: * высказать свое мнение по теме. Соедините свои идеи в один абзац. Используйте правильную форму модальных глаголов: нельзя, нужно, должно. Используйте пунктуацию соответствующим образом. Тема 1. Наш район какое место вы хотели бы посетить в своем соседстве? Почему тебе нравится это место? Какие достопримечательности вы хотели бы там увидеть? Вы бы хотели жить в этом месте? Почему? Тема 2. Транспорт какие виды транспорта вы знаете? Кто из них более опасен? Почему ты так думаешь? Разве это вредит жизни людей? Почему? Какой вид транспорта вы предпочитаете? Почему?
Задачка мне очень понравилась, прилагаю решение на C#, консольное приложение
Объяснение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Археологи_строители
{ class Program
{
static void Main(string[] args)
{
//Объявляем и задаем переменные "M" и "N", а так же переменную для результата
int M,N=new int();
int MyResult = 0;
Console.WriteLine("Ведите Текущее количество ступенек и Сколько их должно быть:");
M = int.Parse(Console.ReadLine());
N = int.Parse(Console.ReadLine());
// Создаем массив для хранения данных о ступенях. M-Количество ступенек, Цифра - для колонок длины и высоты
int[,] mass = new int[M,2];
// Запись значений в массив
for (int x = 0; x < M; x++){
for (int y = 0; y < 2; y++){
if (y==0){ //Чисто для юзерфрендли отображения
Console.Write($"Введите значение Длины для ступеньки №{x + 1}= ");} else{
Console.Write($"Введите значение Высоты для ступеньки №{x + 1}= ");}
mass[x, y] = Convert.ToInt32(Console.ReadLine());}
Console.WriteLine();}
/* Как оказалось, самый простой определить какую же ступеньку надо "поднимать"-
* это вычислить площадь гипотетически "заполняемого" пространства над ступенькой и взять
* наименьшее значение.
*
* Итак, допустим если у нас 5 ступенек, то нам нам необходимо записать 4 значения
* (в рамках лестницы) площади заполняемых ступенек.
*
* Перемножаем Длину ступеньки N на высоту ступеньки N+1, M-1 раз и сохраняем в массив
*/
int M2 = M; //Дублируем изначальное число ступенек для контроля цикла
for (int z = 0; z <M2-N; z++)
{
int[] acreage = new int[M - 1];
for (int x = 0; x < M - 1; x++)
{
for (int y = 0; y < 2; y++)
{
acreage[x] = mass[x, 0] * mass[x + 1, 1];
}
}
/*
* И так у нас есть все значения гипотетически заполняемой ступеньки.
* Ищем минимальное значение площади
*/
int minAcreage = acreage[0];
for (int i = 0; i < M - 1; i++)
{
if (minAcreage > acreage[i])
{
minAcreage = acreage[i];
}
}
MyResult = MyResult+minAcreage; //Плюсуем данное значение в переменную результата
// У нас есть минимальная площадь. Найдем номер данной ступеньки
int IndexAcreage = Array.IndexOf(acreage, minAcreage);
//"Достроим нужную нам ступеньку и запишем обновленные данные во временный массив"
int[,] tempMass = new int[M - 1, 2]; //Он на размер меньше, т.к. и "полных" ступенек у нас стало меньше
for (int x = 0; x < M - 1; x++)
{
for (int y = 0; y < 2; y++)
{
//Ступеньки до IndexAcreage мы просто переписываем во временный массив
if (x < IndexAcreage)
{
tempMass[x, y] = mass[x, y];
}
//2 ступеньки от IndexAcreage мы превращаем в одну (застраивая их блоками)
else if (x == IndexAcreage)
{
tempMass[x, y] = mass[x, y] + mass[x + 1, y];
}
/* и после IndexAcreage мы та же копируем, но со сдвигом вправо, т.к. полноценных
* ступенек стало меньше
*/
else if (x > IndexAcreage)
{
tempMass[x, y] = mass[x + 1, y];
}
}
}
M = M - 1; //Поскольку ступенек теперь меньше, то и их фактическое число необходимо уменьшить
for (int x = 0; x < M + 1; x++)
{
for (int y = 0; y < 2; y++)
{
mass[x, y] = 0;
}
}
//переписываем данные в основной массив и запускаем следющую интерацию цикла
for (int x = 0; x < M; x++)
{
for (int y = 0; y < 2; y++)
{
mass[x, y] = tempMass[x, y];
}
}
}
Console.WriteLine($"Минимально необходимое число блоков: {MyResult}");
Console.ReadKey(true);
}
}
}