Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Вывести на экран ту из матриц, в которой наибольшее число строк, содержащих одни нули

нужно составить следующую программу
Даны три матрицы.Вывести на экран ту из них,в которой наибольшее число строк,содержащих
одни нули (если таких матриц несколько,вывести их все).

желательно, не рандомный ввод.
буду очень благодарен даже за алгоритм)
Ответ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
uses crt;
const nmax=10;
type mtr=array[1..nmax,1..nmax] of integer;
procedure matrix(var a:mtr;var m,n:byte;c:char);
var i,j:byte;
begin
writeln('Введите размеры матрицы ',c);
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите элементы матрицы построчно');
for i:=1 to m do
for j:=1 to n do
 begin
  write('el[',i,',',j,']=');
  readln(a[i,j]);
 end;
clrscr;
end;
procedure print(a:mtr;m,n:byte;c:char);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:5);
  writeln;
 end;
end;
function zero(a:mtr;m,n:byte):byte;
var i,j,k,z:byte;
begin
k:=0;
for i:=1 to m do
 begin
  z:=0;
  for j:=1 to n do
  if a[i,j]=0 then z:=z+1;
  if z=n then k:=k+1;
 end;
zero:=k;
end;
 
 
var a,b,c:mtr;
    ma,na,mb,nb,mc,nc,za,zb,zc,mx:byte;
begin
clrscr;
matrix(a,ma,na,'A');
matrix(b,mb,nb,'B');
matrix(c,mc,nc,'C');
writeln('Исходные матрицы:');
print(a,ma,na,'A');
za:=zero(a,ma,na);
mx:=za;
writeln('Количество строк из 0=',za);
write('Press Enter');
readln;
print(b,mb,nb,'B');
zb:=zero(b,mb,nb);
if zb>mx then mx:=zb;
writeln('Количество строк из 0=',zb);
write('Press Enter');
readln;
print(c,mc,nc,'C');
zc:=zero(c,mc,nc);
if zc>mx then mx:=zc;
writeln('Количество строк из 0=',zc);
write('Press Enter');
readln;
writeln('Матрицы в которых число строк из нолей максимально');
if za=mx then print(a,ma,na,'A');
if zb=mx then print(b,mb,nb,'B');
if zc=mx then print(c,mc,nc,'C');
readln;
end.
Вопрос: Хранение данных число-строка


В общем в чем вопрос, Как лучше хранить пару значений "число - строка" не разрывая их и имея быстрый доступ по любому полю
Который раз натыкаюсь на эту задачу, и каждый раз решаю её по разному.
Был и вариант с массивом строк, когда в роли числа выступал индекс,
Делал и через массив записей, Через отдельные объекты, 
Хранил в 1й строке используя разделитель, в паре ComboBox + массив чисел,
даже в  .ini файлах...

И вот опять.
Есть необходимость заполнить списком из базы данных, но попутно сохраняя индекс (числа в диапазоне 1-1000, но с пропусками)
Уже решил сделать так делать
 
Код

СomboBox.Items[DQuery.Fields[0].AsInteger]:=DQuery.Fields[1].AsString;

а при рисовании объекта, проверять что строка не пустая..... с одной стороны, при выборе элемента не потребуется искать id, c другой стороны, каждый при отрисовке будет выполняться проверка...

Подскажите как-же эффективнее и лучше хранить такие данные...

P.S. необходимо находить как строку по числу, так и число по строке...
Delphi Rad Studio XE5


Это сообщение отредактировал(а) JenHak - 30.3.2014, 17:18
Ответ:
А если я использую не Кверри на стороне клиента а КомандТекст в компоненте КлиентДатаСет ?
Запрос на удаление строки работает, а на добавление постоянно ругается на Строку Едит3.Текст
Я пытался использовать переменные но уже запутался !
Ошибка *Инкорект Синтаксис ниер .12* В Єдит3 прописывается формат 12.12.12

Вопрос: Найти в матрице числа строк, сумма элементов у которых отрицательна

Доброго времени суток, начал потихоньку изучать данный язык, и наткнулся на не понимания формулировки задачи.
"Составить программу нахождения числа строк матрицы А(N,N), сумма элементов у которых отрицательна."
Вопрос таков, что просят здесь найти, а точнее что должно получится на выходе? Можно без кода программы, просто ответ на поставленный вопросик.
Ответ: А что вы уже сделали?

Добавлено через 1 минуту
Берешь проходишься циклом суммируя каждую строку если в сумме получается число с - то отсчитываешь в счетчик, в итоге выводишь счетчик сколько получилось строк с отрицательной суммой.
Вопрос: Написать функцию numberstring() для подсчета числа строк в тексте

Для удобства работы с длинным текстом на экране необходимо разделить его на строки, не превышающие длины экрана (80 символов). Одна из возможных реализаций такого разбиения это разделить текст на строки ограниченной длины и создать массив указателей на эти строки. Строки при этом разместятся в массивах типа unsigned char следующим образом:
C
1
2
3
4
5
const unsigned len = 80; /*длина строки <=80*/
const unsigned num = 100; /* максимальное число строк 100*/ 
unsigned char*str[100]; int i; /* Создание массивов */ 
for(i=0; i<=num; i++) 
str[i]=(unsigned char*) malloc(len); 
Для удобства отладки программ рекомендуется взять в качестве редактируемого текста файл, содержащий программу на языке Си. Если строка больше 80 символов, то для упрощения программы их можно отсечь. Сделать num > числа строк в обрабатываемом файле; при этом последним элементам массива str, не указывающим на строки, присвоить значение NULL. Разместить в памяти, используя массив указателей, преобразованные строки исходного текста программы и вывести их на печать.

Написать функцию numberstring( ) для подсчета числа строк в тексте. Напечатать это число.

я пока не могу понять как это??(
Ответ:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
#define PROGRAM_NAME argv[0]
#define FILE_NAME argv[1]
 
int main(int argc, char ** argv) {
    FILE * f;
    int c, count = 0;
    
    if ( argc < 2 ) {
        fprintf(stderr, "USAGE: %s file_name\n", PROGRAM_NAME);
        return 1;
    }
    
    if ( ! ( f = fopen(FILE_NAME, "r") ) ) {
        fprintf(stderr, "%s: can't open file %s\n", PROGRAM_NAME, FILE_NAME);
        return 1;
    }
    
    while ( ( c = fgetc(f) ) != EOF )
        count += ( c == '\n' );
    
    if ( ferror(f) | fclose(f) ) {
        fprintf(stderr, "%s: something is wrong with file %s\n", PROGRAM_NAME, FILE_NAME);
        return 1;
    }
    
    printf("%d lines.\n", count);
    return 0;
}
Code
1
2
3
andrew@debppc:~/workspace/c/files$ gcc -Wall lines_count.c 
andrew@debppc:~/workspace/c/files$ ./a.out lines_count.c 
30 lines.
Вопрос: TXLSFile возвращает неверное число строк в файле Excel

Допиливаю прогу, про которую точно известно, что она работает. Есть такой код в начале процедуры загрузки данных из файла:
n:= Excel.Workbook.Sheets[0].Rows.Count - 1;
Для определения числа строк в файле Excel
Но почему то свойство Excel.Workbook.Sheets[0].Rows.Count возвращает неверное число строк: 1845, хотя их более 6000.
Если вручную удаляю число строк по 1845, уже видит 509 строк.
Что за фокусы? Может это быть из-за каких либо фильтров (хотя вроде ничего нет), форматирования, старых версий чего-либо?

Стоит Delphi 2007 + XLSSuite5. Формат файла загрузки: Excel 2003
При этом в коде в uses кроме всяких TXLS... еще есть Excel2000 и ExportToExcel
Юнит Excel2000 убирал - ничего не изменилось, ExportToExcel - не убрать, там описаны нужные переменные
Ответ: Egoр, проблеме решена как указал Gator
Вопрос: Vba Ms Project. Error '1101' число строк проекта превысит предельное значение в 1048000 строк

Всем доброго дня.
Вот решился задать вопрос, тк очень долго не могу найти ответ на форумах. Как будто только у меня такое.
Есть файл локальный Project 2010 на 15000 строк. В нем используются макросы для пересчета. Ежедневно работает стабильно несколько месяцев.
Но! Регулярно примерно раз в полгода возникает ошибка.
----------------------------------------------
Run-time error '1101'
Завершение операции невозможно, так как исходный файл содержит недопустимые данные проекта или число строк проекта превысит предельное значение в 1048000 строк.
----------------------------------------------
При отключении строки на которой выскакивает сообщение, такое же сообщение будет через пару-тройку строк.
При этом добавление строк в прожект разрешено.
На предыдущей строке, после которой ошибка ничего криминального нет.
После такого сообщения работа макроса блокируется полностью, т.к. сообщение начинает выскакивать на каждой строке кода и ни какие меры толку не дают. Файл умер. Нужен другой файл.

Приходится ваять точно такой же файл, с такими же полями, переносить в него точно такие же макросы. Запускаем - ошибок нет.
И это спасет на 5-6 месяцев.
Бесит просто капец как.
Может есть какой рецепт как с этим бороться? Пожалуйста..
Ответ: Ms Project 2010
Вопрос: Подсчет количества уникальных строк и числа строк с каждым из уникальных значений

Здравствуйте, есть таблица с текстовой колонкой. Нужно получить количество строк, в которых значение этой колонки уникально и число строк для каждого из уникальных значений.
Помогите пожалуйста! Заранее спасибо!
Ответ: Спасибо огромное!

Добавлено через 1 минуту
_kda, А какой синтаксис в случае с таблицей, а не с массивом?

Добавлено через 34 минуты
_kda, Не нужно, разобрался)
Вопрос: Имеются два текстовых файла с одинаковым числом строк

Имеются два текстовых файла с одинаковым числом строк. Переписать с сохранением порядка следования строки первого файла во второй, а строки второго файла — в первый. Ис-пользовать вспомогательный файл.
Ответ:
Python
1
2
3
4
with open('1.txt', 'w') as f1, open('2.txt', 'w') as f2, open('t.txt', 'w') as t:
    t.writelines(f1.readlines())
    f1.writelines(f2.readlines())
    f2.writelines(t.readlines())
Вопрос: Devexpress GridControl число строк

Всем привет. Не нашел статью, где написано сколько строк показывает таблица (максимум) ? И можно ли настроить его по страницам, если число строк больше?
Ответ: если честно, я с подобным не работал. Но что-то подобное можно попытаться сделать при помощи eXpress Persistent Objects (XPO)
Вопрос: Функция: конкатенация переменного числа строк

Всем привет! Надо реализовать функцию которая принимала переменное число строк и навыходе конкатенировала в одну строку.

C
1
char* concat_variadic_strings(char* format, ...);
Ответ:
Сойдет?

Добавлено через 18 минут
Вариант с возвращением значения