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

Си (( 1). решить следующие с использованием класса stack: 5. написать программу подсчета выражения в префиксной форме. 2)решить следующие с использованием класса queue: 5. дан текстовый файл. за один просмотр файла напечатать элементы файла в следующем порядке: сначала все слова, начинающиеся с прописной буквы, потом все слова, начинающиеся со строчной буквы, сохраняя исходный порядок в каждой группе слов.

Показать ответ
Ответ:
миха395
миха395
03.03.2023 22:53
Var
  f: text;
  i, j, n, n1: integer;
  matrix: array[,] of real;
begin
  assign(f, 'informat8.txt');
  reset(f);
  //найдём количество строк в матрице
  while not eof(f) do
   begin
    readln(f);
    inc(n);
  end;
  writeln('исходная матрица размерности ', n, 'x', n);
  //инициализируем массив (размерность узнали выше)
  matrix := new real[n, n];
  reset(f);
  // далее работаем с матрицей размерности [0..n-1] (инициализация происходит, начиная с 0)
  for i := 0 to n - 1 do
  begin
    for j := 0 to n - 1 do
    begin
      read(f, matrix[i, j]);
      write(matrix[i, j]:8:2);
    end;
    readln(f);
    writeln;
  end;
  writeln;
  n1 := 0;
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      if matrix[i, j] < 0 then inc(n1);
  if n1 > round(n * n / 2) then
  begin
    writeln('Отрицательных элементов больше половины');
    //удваиваем элементы в чётных строках
    for i := 0 to n - 1 do
    begin
      if odd(i) then begin
        for j := 0 to n - 1 do
           matrix[i, j] := matrix[i, j] * 2;
      end;
    end;
  end else
  begin
    writeln('Отрицательных элементов меньше половины или ровно половина');
    //удваиваем элементы последнего столбца
    for i := 0 to n - 1 do
      matrix[i, n - 1] := matrix[i, n - 1] * 2;
  end;
    writeln('результирующая матрица');
  for i := 0 to n - 1 do  begin
    for j := 0 to n - 1 do
      write(matrix[i, j]:8:2);
    writeln;
  end;
end.

Результат работы:


Написать программу в паскаль или исправить ошибку в моей программе. в матрице имеются как положитель
0,0(0 оценок)
Ответ:
niceglotatel
niceglotatel
10.09.2020 22:41

#include

#include

#include

#include

#include

#include

typedef struct

{

char imya[40];

char familiya[40];

char otchestvo[40];

int telefon;

int texpasport;

float pages ;

}gor;

void form(char mass[10], char *imya, char *familiya, char *otchestvo, int telefon, int texpasport)

{

file *f;

gor y;

int i;

if ((f=fopen(mass,"w"))==null) exit(1);

for (i=1; i< =3; i++)

{

cout< < "vvedite imya: ";

cin> > imya;

cout< < "vvedite familiya: ";

cin> > familiya;

cout< < "vvedite otchestvo: ";

cin> > otchestvo;

cout< < "vvedite telefon: ";

cin> > telefon;

cout< < "vvedite texpasport: ";

cin> > texpasport;

fwrite(& y,sizeof(gor),1,f);

if(ferror(f)! =null)

exit(2);

}

fclose(f);

}

void vivod(char mass[50])

{

file *f;

gor z;

if ((f=fopen(mass, "r"))==null) exit(3);

cout< < "fail: "<

while (! feof(f)) {

fread (& z,sizeof(gor),1,f);

if (! feof(f))

{

cout< < "imya: "<

cout< < "familiya: "<

cout< < "otchestvo: "<

cout< < "telefon: "<

cout< < "texpasport: "<

}

fclose(f);

}

}

void del(char fo[10], char fi[10])

{

file *f1,*f2;

gor d;

//char temp[40];

if ((f1=fopen(fi,"r"))==null) exit(4);

if ((f2=fopen(fo,"w"))==null) exit(5);

//cout < < "vvedite nazvanie na ydalenie - ";

//cin > > temp;

for (int i=0; i< 3; i++)

{

fread(& d,sizeof(gor),1,f1);

if (feof(f1)) break;

if (i> 2)

fwrite (& d,sizeof(gor),1,f2);

}

fclose(f2);

fclose(f1);

}

void dobav(char fi[10], char fo[10],char *imya, char *familiya, char *otchestvo, int telefon, int texpasport)

{

int q;

int i;

gor d;

file *f1,*f2;

char temp[40];

if ((f1=fopen(fi, "r"))==null) exit(4);

if ((f2=fopen(fo,"r+"))==null) exit(5);

cout < < "vvedite familiu, pered kotorym nuzno dobavit element: ";

cin > > temp;

for (i=0; i< 10; i++)

{

fread(& d,sizeof(gor),1,f2);

if (feof(f2)) break;

if (strcmp(d.familiya, temp)) break;

q=i;

}

for (i=0; i< 10; i++)

{

if (feof(f2)) break;

fwrite (& d,sizeof(gor),1,f2);

if (i==q-1)

{

cout< < "vvedite imya: ";

cin> > imya;

cout< < "vvedite familiya: ";

cin> > familiya;

cout< < "vvedite otchestvo: ";

cin> > otchestvo;

cout< < "vvedite telefon: ";

cin> > telefon;

cout< < "vvedite texpasport: ";

cin> > texpasport;

cout <

}

}

fclose(f2);

fclose(f1);

}

void main()

{

int n=10;

//cout < < "vvedite kol-vo zapisey: - ";

//cin> > n;

//cout <

form("f1.txt",n);

vivod("f1.txt");

del("f1.txt","f2.txt");

cout < < "posle udalenia: \n";

vivod("f2.txt");

getch();

n=1;

system("cls");

dobav ("f2.txt","f2.txt");

cout < < "posle dobavlenia: \n";

vivod ("f2.txt");

getch();

}

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