М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
pidgenatar
pidgenatar
17.04.2022 23:44 •  Информатика

Pascal abc тема записи с клавиатуры вводится номер школы. файл содержит сведения: фамилию, имя ученика, номер школы. определить кол-во учеников в школе с заданным номером с клавиатуры

👇
Ответ:
FoxEdit
FoxEdit
17.04.2022
Список учеников в файле data.txt(см. вложение)

//Pascal
type
  TPupils = record
    firstname, surname: string;
    schoolNumber: integer;
  end;

var
  f: text;
  s, buf: string;
  i, j, tmp: byte;
  num, countPupils: integer;
  A: array [1..200] of TPupils;
begin
  assign(f, 'data.txt');
  reset(f);
  j := 1;
  while not eof(f) do
  begin
    readln(f, buf);
    buf := buf + ' ';
    tmp := 1;

    for i := 1 to length(buf) do
    begin
      if pos(buf[i], ' ') = 0 then s := s + buf[i]
      else
      begin
        if length(s) > 0 then
        begin
        case tmp of
          1: begin  A[j].firstname := s; Inc(tmp); end;
          2: begin A[j].surname := s; Inc(tmp); end;
          3:
          begin
            Val(s, num, num);
            A[j].schoolNumber := num;
          end;
        end;
        //writeln(s);
        s := '';
        end;
      end;
    end;
    Inc(j);
  end;
  close(f);

  write('Введите № школы: ');
  readln(num);

  for i := 1 to 200 do
  begin
    if A[i].schoolNumber = num then
      //writeln(A[i].firstname, ' ', A[i].surname, ' ',
      //        A[i].schoolNumber);
      Inc(countPupils);
  end;
  writeln('Количество учеников в данной школе = ',
          countPupils);
end.
4,6(63 оценок)
Ответ:
kiriolet
kiriolet
17.04.2022
Считаем, что поля записи в текстовом файле разделены символом ";", тогда задачу можно решить так:

type

  Person = record

    fname: string;//Фамилия ученика

    lname: string;//Имя

    school: integer;//Номер щколы

  end;

 

var student: Person;

n,s,p:integer;

tmp:string;

fin:text;//Файловая переменная


begin

  assign(fin, 'students.txt');

  reset(fin);

  readln(n);//Получаем номер школы

  while not (eof(fin)) do 

  begin

    readln(fin, tmp);//Читаем строку из файла

    p:= Pos(';', tmp); 

    Delete(tmp, 1, p);//удаляем все до первого разделителя

    p:= Pos(';', tmp); 

    Delete(tmp, 1, p);//удаляем все до второго разделителя

    // в tmp остался номер школы

    student.school:=strtoint(tmp);

    if student.school=n then s+=1; 

  end;

  writeln(s);

end.

4,5(32 оценок)
Открыть все ответы
Ответ:
Sergei12121
Sergei12121
17.04.2022

Для того, чтобы решить данную задачу, необходимо воспользоваться формулой  N = 2^i, где N - максимальное количество цветов в палитре, а i - глубина цвета.

2^8 < 312 < 2^9 

Если мы будем использовать глубину цвета равную 8 битам, то максимальное допустимое количество цветов в палитре будет равняться 256 (так как 2^8 = 256), что не удовлетворяет условиям задачи.

Значит, нам необходимо использовать глубину цвета равную 9 битам, так как при этом значении максимальное допустимое количество цветов в палитре будет равняться 512(так как 2^9 = 512), а значит для кодирования 312 цветов памяти хватит с избытком.

ответ: 9 

4,8(16 оценок)
Ответ:
ваня1340
ваня1340
17.04.2022
{
процедуру с параметрами, обеспечивающую перестановку двух заданных строк матрицы
написан на PascalABC.NET
но должно работать в TurboPascal
}

PROGRAM A5;
const
    rows = 5;
    cols = 8;
   
type
    matrix = array [1..rows,1..cols] of integer;
 
var
    AR : matrix;// рабочая матрица
    i,j:byte;// счетчики
    k1,k2:byte;// номера строк

// обмен строк матрицы местами
procedure SwapRows(row1:byte; row2:byte; var m:matrix);
var i,j:byte;
    ax:integer;
begin
  for i:=1 to cols do begin
    ax := m[row1,i];
    m[row1,i] := m[row2,i];
    m[row2,i] := ax;
  end;
end;

// выравнивание по правому краю - пробелы перед числом
function trailSpace(num:byte; len:byte):string;
var   s:string;
      i:byte;
begin
  s := ''+num;
  i := s.Length;
  while (i<len) do begin
    s := ' ' + s;
    i := i+1;
  end;
  trailSpace := s;
end;

// вывод матрицы на экран
procedure displayMatrix(var m:matrix);
var i,j:byte;
begin
  for i:=1 to rows do begin
    write('Строка ', i, ': ');
    for j:=1 to cols do begin
      write();
      write(trailSpace(AR[i,j], 4) );
    end;
    writeln(' ');
  end;
end;

BEGIN
  // заполнение массива и вывод его на экран
  randomize();
  for i:=1 to rows do
    for j:=1 to cols do
      AR[i,j] := random(256);
  writeln('Начальный массив');
  displayMatrix(AR);
 
  // ввод данных
  writeln(' ');
  write('введите номер строк которые следует поменять местами: ');
  readln(k1, k2);

  if (k1<=rows) and (k2<=rows) then begin
    SwapRows(k1, k2, AR);
    writeln('Результат');
    displayMatrix(AR);
  end else
    writeln('Номера строк должны быть меньше ', rows);
END.

Написать процедуру с параметрами, обеспечивающую перестановку двух задан- ных строк матрицы. паскаль
4,5(3 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ