3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
1

Не выводится запись о товарах

01.10.2011, 20:24. Показов 1185. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. вобщем такая задача. Существует массив строк, где первый столбец партия, вторая тип, третья цена товара. Нужно, чтобы при вводе пользователем номера первого элемента строки(то есть партии) выводилась тройка чисел: партия тип цена, для такой партии. Я сделал так: при вводе запоминается в виде строки номер в переменную а. Далее для строки i до конца(n) в b запоминается первый элемент, а далее если первый элемент строки совпадает с номером а, то выводится на печать.
Только ничего не работает. Объясните, где ошибка?



Pascal
1
2
3
4
5
6
7
8
9
var b:integer;
begin
for sr:=1 to n do
b:=length(ser[sr])-(length(ser[sr])-1);
if ser[b]=a then
 begin
    write(ser[b]:7);
    writeln;
 end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2011, 20:24
Ответы с готовыми решениями:

нужно сделать чтобы в отчете выводилась та запись которая выделена в DBGrid, а то у меня постоянно выводится первая запись,помогите пожалуйста.
Извините за беспокойство, но возник вопрос: мне нужно сделать чтобы в отчете выводилась та запись...

Не выводится ни одна запись
Всем привет. Вопрос такой. Делаю сайт, вернее шаблон купили, в базе есть более 10 000 записей но их...

в цикле не выводится запись с id=0
есть таблица id| name| abovecont 0| Header| 0 1| Menu| 0 2| Baner| 0 3| Left| 0 5| center| 1...

Не выводится последняя запись из БД
Всем доброго времени суток! Столкнулся с такой проблемой: не выводится последняя запись из БД....

10
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
01.10.2011, 20:29 2
Массив видимо типа
Pascal
1
var a:array[1..n,1..3] of string;
Да?
Или просто
Pascal
1
var a:array[1..n] of string?
0
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
01.10.2011, 20:31  [ТС] 3
ser=array[1..n] of string;
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
01.10.2011, 20:35 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a:array[1..100] of string;
     p:string;
     i,k:integer;
begin
..........................
write('Введите номер партии:  ');
readln(p);
k:=0;
for i:=1 to n do
if copy(a[i],1,pos(' ',a[i]))=p then//слова в строке через пробел
 begin
  writeln(a[i]);
  k:=1;
 end;
if k=0 then writeln('Такого номера партии нет');
.............................
end.
0
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
01.10.2011, 20:50  [ТС] 5
Не работает ((. вот код, написал все как посоветовали, но не пашет(
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
{Ввод данных в формате партия тип цена}
begin
writeln('введиет через пробел партия тип цена');
for sr:=1 to n do
begin
  write('a[',sr,']=');
  read(ser[sr])
  end
  end;{Vvod}
 
procedure Zapros (var a:string);
{запрос партии}
var
p:boolean;
begin
p:=true;
while p do
begin
writeln('введите номер партии');
readln(a);
p:=false;
end
end;{Zapros}
 
procedure Vivodseria ( sr:integer; var a:string;var ser:Data);
{вывод тройки партия тип цена по запросу партии}
 
begin
for sr:=1 to n do
if copy(ser[sr],1,pos(' ',ser[sr]))=a then
 
 begin
    writeln(ser[sr]);
    writeln;
 end
  end;{Vivodseria}
0
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.10.2011, 20:52 6
Цитата Сообщение от 0xDC Посмотреть сообщение
чего все красным цветом?
В пятой строке ошибка.

Еще в шестой строке ошибка или чего-то я не понимаю - весь код надо показывать.
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
01.10.2011, 20:55 7
Цитата Сообщение от 0xDC Посмотреть сообщение
вот код, написал все как посоветовали,
Это не код, а в туалет сходить. Код, это когда можно скопировать и программу запустить для проверки.
1
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
01.10.2011, 21:01  [ТС] 8
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
    Program Lab;
const n=6;
type Data=array[1..n] of string;
var ser:Data;
    sr:integer;
    a:string;
    
    
    {*****Vvod*****}
procedure Vvod (  sr:integer; var ser:Data);
    {Ввод данных в формате партия тип цена}
begin
writeln('введиет через пробел партия тип цена');
for sr:=1 to n do
begin
  write('a[',sr,']=');
  read(ser[sr])
  end
  end;{Vvod}
 
 
 {*****Zapros*****}
procedure Zapros (var a:string);
{Действие: запрос у пользователя номера партии }
var
p:boolean;
begin
p:=true;
while p do
begin
writeln('Введите номер партии');
readln(a);
p:=false;
end
end;{Zapros}
 
{*****Vivodseria*****}
procedure Vivodseria ( sr:integer; var a:string;var ser:Data);
{Действие: Вывод тройки партия тип цена,по запросу пользователя}
var i:integer;
 
begin
for sr:=1 to n do
if copy(ser[sr],1,pos(' ',ser[sr]))=a then
 
 begin
    writeln(ser[sr]);
    writeln;
 end
  end;{Vivodseria}
  
  begin
    Vvod(sr,ser);
  Zapros(a);
  Vivodseria(sr,a,ser)
    end.
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
01.10.2011, 21:17 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
Program Lab;
uses crt;
const n=6;
type Data=array[1..n] of string;
var ser:Data;
    sr:integer;
    a:string;
{*****Vvod*****}
procedure Vvod(var ser:Data);
        {Ввод данных в формате партия тип цена}
var sr:integer;
begin
writeln('введите через пробел партия тип цена');
for sr:=1 to n do
begin
 write('ser[',sr,']=');
 readln(ser[sr])
end
end;{Vvod}
 
{*****Zapros*****}
procedure Zapros;
{Действие: запрос у пользователя номера партии }
var sr,k:integer;
begin
writeln('Введите номер партии');
readln(a);
k:=0;
for sr:=1 to n do
if copy(ser[sr],1,pos(' ',ser[sr])-1)=a then
 begin
  writeln(ser[sr]);
  k:=1;
 end;
if k=0 then writeln('Такой партии нет')
end;{Zapros}
 
begin
Vvod(ser);
Zapros;
end.
1
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
01.10.2011, 21:38  [ТС] 10
Огромное спасибо)
Вопрос только. можете подробно объяснить что означает вот эта строчка:
if copy(ser[sr],1,pos(' ',ser[sr])-1)=a then {Сравнивает участок строки до пробела с а?}
Что делает pos?
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
01.10.2011, 21:40 11
Цитата Сообщение от 0xDC Посмотреть сообщение
Сравнивает участок строки до пробела с а?}
Именно так и есть.

Добавлено через 1 минуту
pos это стандартная функция, можно и в Хелп заглянуть. Определяет первое вхождение подстроки в строке, в данном случае индекс первого пробела.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2011, 21:40
Помогаю со студенческими работами здесь

Выводится только 1 запись
Здравствуйте, вывожк данные из базы, а выводится только 1 вместо 2 <? $q1=mysql_query("SELECT *...

Почему не выводится запись с БД?
Почему не выводится запись с БД? Делаю личный кабинет. Регистрация вроде сделана хорошо, в базе...

Mysql_fetch_array не выводится одна запись
Всем привет Ситуация следующая, когда вывожу инфу из базы по определенному условию, она выводится...

Одна запись выводится дважды
Доброго времени суток! При составлении базы данных возникла следующая проблема: при создании...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru