В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Nastya1111113466
Nastya1111113466
27.10.2021 17:22 •  Информатика

C++ алгоритм сортировки простыми вставками (по возрастанию). 1. создание полного пути к файлу или директории char *combinepath(const char *directorypath, const char *filename); 2. рекурсивный обход всех файлов и директорий каталога directorypath с использованием функций _findfirst() и _findnext() и выполнение для каждого файла и каталога функции, переданной с указателя fileobjectprocessor typedef bool (*fileobjectprocessor)(bool isdirectory, const char *fileobjectpath); bool traversedirectory(char *directorypath, fileobjectprocessor fileobjectprocessor); функция обратного вызова, передаваемая при указателя типа fileobjectprocessor, должна возвращать true, если следует продолжать дальнейшую обработку файлов. функция traversedirectory должна возвращать true, если для всех файлов и каталогов функция, передаваемая при указателя типа fileobjectprocessor, вернула true, в противном случае она должна вернуть false. 3. на базе функции traversedirectory реализовать функцию, которая создаст в каждом каталоге, имя которого содержит вашу фамилию, дочерние папки с именами «самостоятельные работы», «контрольные работы» и «практические ». для этого необходимо реализовать функцию создания в указанном каталоге (директории) directorypath папки с именем subdirectoryname (не содержит слешей). bool createdirectory(const char *directorypath, const char *subdirectoryname); функция должна выполнить создание всех отсутствующих в файловой системе частей в directorypath. 4. на базе функции traversedirectory реализовать функции, которые выполняют переименование дочерних папок и файлов, которые содержат вашу фамилию. вместо фамилии в имени папки и файла должно появиться ваше фамилия, имя и отчество. например, папка «петухова» должна стать папкой «петухова надежда николаевна». для этого необходимо реализовать функции переименования файла или каталога (директории): bool renamefile(const char *originalfilepath, const char *newfilename); bool renamedirectory(const char *originaldirectorypath, const char * newdirectoryname); 5. на базе функции traversedirectory реализовать функцию копирования файлов, содержащих вашу фамилию, из исходной директории в целевую директорию с сохранением исходной структуры каталогов (каталоги, не содержащие в себе либо в дочерних каталогах файлов с вашей фамилией, не должны создаваться при копировании). для копирования файлов должна быть реализована и использована функция copyfile, копирующая содержимое файла sourcefilepath в новый файл newfilepath. bool copyfile(const char * sourcefilepath, const char *destinationfilepath, int blocksize); копирование должно осуществляться блоками размером blocksize. провести экспериментальную оценку скорости копирования для блоков разного размера (1 байт, 4096 байтов, 5000 байтов, 65536 байтов). 6. на базе функции traversedirectory реализовать функцию, определяющую количество файлов и размеры файлов в директории. возможно, для этого нужно будет изменить вид функции обратного вызова, передаваемой при указателя. 7. на базе функции traversedirectory реализовать функцию, выполняющую сортировку n целочисленных элементов (в тестах задать n равным номеру варианта + 10), содержащихся по смещению n байтов от начала файла (результат должен быть сохранен в том же файле), в дочерних директориях, содержащих вашу фамилию. при сортировке запрещено использовать временный буфер для чтения и записи из файла размером больше чем sizeof(int). алгоритм сортировки определяется номером варианта.

Показать ответ
Ответ:
саша5479
саша5479
15.10.2021 14:50
// PascalABC.NET 3.0, сборка 1088
const
  nDay:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
type
  Date=record
    Day,Month,Year:integer
  end;
 
function DOW(Dat:Date):integer;
// день недели по дате. 0-Вс. 1-Пн, 7-Сб
var
  a,y,m:integer;
begin
  With Dat do begin
    a:=(14 - month) div 12;
    y:=Year-a;
    m:=month+12*a-2;
    DOW:=(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7
    end
end;

procedure DMY2Date(d,m,y:integer; var data:Date);
// Преобразует к дате заданные день, месяц и год
begin
  data.Day:=d; data.Month:=m; data.Year:=y
end;

procedure LastDays(month,year:integer; var Wd,Fr:Date);
// даты последней среды (Wd) и пятницы (Fr) для месяца в году }
var
  LastDay:Date;
  n:integer;
begin
  n:=nDay[month];
  if (month=2) and (year mod 4 = 0) then Inc(n);
  DMY2Date(n,month,year,LastDay);
  n:=DOW(LastDay); // номер последнего дня недели
  Wd.Month:=month; Wd.Year:=year;
  if n<3 then Wd.Day:=LastDay.Day-(n+4)
  else
    if n=3 then Wd.Day:=LastDay.Day
    else Wd.Day:=LastDay.Day+3-n;
  Fr.Month:=month; Fr.Year:=year;
  if n<5 then Fr.Day:=LastDay.Day-(n+2)
  else
    if n=3 then Fr.Day:=LastDay.Day
    else Fr.Day:=LastDay.Day-1
end;

var
  Wd,Fr:Date;
  ff,mf:Text;
  m:integer;
begin
  Assign(ff,'father.txt'); Rewrite(ff);
  Assign(mf,'mother.txt'); Rewrite(mf);
  // Сентябрь-декабрь 2015 года
  for m:=9 to 12 do begin
    LastDays(m,2015,Wd,Fr);
    if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2015 - 1 класс')
    else Writeln(ff,Wd.Day,'.',m,'.2015 - 1 класс');
    if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2015 - 5 класс')
    else Writeln(ff,Fr.Day,'.',m,'.2015 - 5 класс')
  end;
  // Январь - май 2016 года
  for m:=1 to 5 do begin
    LastDays(m,2016,Wd,Fr);
    if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2016 - 1 класс')
    else Writeln(ff,Wd.Day,'.',m,'.2016 - 1 класс');
    if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2016 - 5 класс')
    else Writeln(ff,Fr.Day,'.',m,'.2016 - 5 класс')
  end;
  Close(ff); Close(mf)
end.

Содержимое выходных файлов:
father.txt
30.9.2015 - 1 класс
28.10.2015 - 1 класс
30.10.2015 - 5 класс
30.12.2015 - 1 класс
24.2.2016 - 1 класс
26.2.2016 - 5 класс
30.3.2016 - 1 класс

mother.txt
25.9.2015 - 5 класс
25.11.2015 - 1 класс
27.11.2015 - 5 класс
25.12.2015 - 5 класс
27.1.2016 - 1 класс
29.1.2016 - 5 класс
25.3.2016 - 5 класс
27.4.2016 - 1 класс
29.4.2016 - 5 класс
25.5.2016 - 1 класс
27.5.2016 - 5 класс
0,0(0 оценок)
Ответ:
TKluykova
TKluykova
01.11.2021 06:46

При автоматическом переводе могут возникнуть много проблем

в зависимости от контекста слова могут иметь разное значениеперевод пословиц, поговорок и прочих стандартных словосочетаний может не существовать на другом языке или может быть передан не верноотрицательные предложения могут перейти в положительныеигра слов часто непереводиманедостаток информации одного текста не может быть восполнен. Например в английском у глаголов нет родов, а в русском естьдругая причина потери смыслаэлектронный переводчик может не знать, как переводится слово или фраза, или не иметь всех вариантов перевода
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота