Нужно написать программу в Pascal.Нужно будет считать информацию с двух файлов и объединить их в один файл. В первом файле есть
Нужно написать программу в Pascal. Нужно будет считать информацию с двух файлов и объединить их в один файл. В первом файле есть 3 столбца: 1. Четырехзначный номер 2. Рост 3. Вес Во втором файле также 3 столбца: 1. Четырехзначный номер 2. Время бега на 1 км 3. Колличество подтягиваний Нужно написать программу которая будет считывать данные с двух файлов и будет создавать 3ий файл, в котором программа объединит все данные в соответствии с номером. PascalABC.NET 3.1
<em>ВАЖНО!</em> Прикрепленные файлы на самом деле не текстовые, а двоичные, но таковые данная система не позволяет прикрепить. Поэтому не стоит пытаться эти файлы читать.
<u>Для работы программы следует переименовать файлы в file1.bin и file2.bin</u>
begin // считываем файл f1 в массив типа st1 var f1:file of st1; Assign(f1,'file1.bin'); Reset(f1); var n1:=FileSize(f1); var m1:=new st1[n1]; for var i:=0 to n1-1 do Read(f1,m1[i]); f1.Close; // читаем файл f2 и для каждой записи ищем элемент массива // с таким же номером. Если найден - делаем слияние в файл f3 var f2:file of st2; Assign(f2,'file2.bin'); Reset(f2); var buf2:st2; // буфер для чтения f2 var f3:file of st3; Assign(f3,'file3.bin'); Rewrite(f3); var buf3:st3; // буфер для записи f3 while not Eof(f2) do begin Read(f2,buf2); var j:=m1.FindIndex(t->t.номер=buf2.номер); if j<>-1 then begin buf3.номер:=buf2.номер; buf3.рост:=m1[j].рост; buf3.вес:=m1[j].вес; buf3.время_бега:=buf2.время_бега; buf3.кол_подтягиваний:=buf2.кол_подтягиваний; Write(f3,buf3) end end; f2.Close; // посмотрим, что получилось в f3 Seek(f3,0); while not Eof(f3) do begin Read(f3,buf3); Print(buf3) end; f3.Close end.
1) 27*8=216 бит 2)52*2=104 байта 3)38*2=76 байт 4)32*8=256 бит 6)20*35*2=1400 Прошу прощения, но не знаю сколько битов или байтов в кодировке КОИ-8, поэтому не могу решить 5
1. Общее количество символов 1800 + 2 х 3000 = 7800. Пусть символы кодируются в однобайтном коде ASCII, тогда 7 800 символов имеют информационный объём 7 800 байт или 7800 х 8 =62 400 бит. При скорости передачи 1200 бит/с на передачу этой информации потребуется время 62400 / 1200 = <u><em>52 с</em></u> 2. Предполагая кодировку ASCII определим объем информации: 7920 х 40 х 8 = 2 534 400 бит. Скорость передачи составит 2534400 / 33 = <u><em>76 800 бит/с</em></u> 3. Переводим килобайты в биты (1 Кбайт = 1024 байта, 1 бит = 8 байт): 3750 х 1024 х 8 = 30 720 000 бит. Переводим минуты в секунды: 2 х 60 = 120 с Определяем скорость передачи: 30720000 / 120 = <u><em>256 000 бит/с</em></u> 1) 500 Кбайт = 500 х 1024 х 8 = 4 096 000 бит. Время передачи данных 4096000 / 128000 = <em><u>32 с</u></em> 2) За 2 минуты, равные 2 х 60 = 120с, будет передано 256000 х 120 = 30 720 000 бит. Переводим в килобайты: 30720000 / 8 / 1024 = <u><em>3 750 Кбайт</em></u> 3) 3000 Кбайт = 3000 х 1024 х 8 = 24 576 000 бит 5 минут - это 5 х 60 = 300 с Скорость передачи данных составит 24576000 / 300 = <u><em>81 920 бит/с</em></u>
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin var (a,b,c):=ReadInteger3('Введите три целых числа:'); var s:=0; if a.IsOdd then s+=a; if b.IsOdd then s+=b; if c.IsOdd then s+=c; Writeln('сумма нечетных равна ',s) end.
<u>Пример</u> Введите три целых числа: 345423 -324342 1231 сумма нечетных равна 346654