Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.02.2009
Сообщений: 4
1

Выбрать из исходного массива символьных строк те, которые содержат только цифровые символы

24.02.2009, 00:25. Показов 1453. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание

Составить и отладить программу, обеспечивающую ввод массива символьных строк (и, если необходимо по условию варианта задания то, ввод дополнительного символа или группы символов), а также выполнение процедуры, сущность которой сформулирована ниже. Результаты решения задачи либо сообщение о невозможности её выполнения (в случае отсутствия строк, соответствующих условию) вывести на экран монитора. Вариант задания указывается преподавателем.
мое задание:Выбрать из исходного массива символьных строк те, которые содержат только цифровые символы, рассмотреть их как однозначные или многозначные числа и вычислить сумму этих чисел.
Ребят помогите плиз!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2009, 00:25
Ответы с готовыми решениями:

Из исходного массива символьных строк выбрать строки, которые можно рассматривать как комментарии на языке Паскаль
задание: составить и отладить программу, обеспечивающую ввод массива символьных строк (20...

Написать процедуру для распечатки на экране тех строк массива, которые содержат только двузначные числа.
Решите пожалуйста задачи: 1. Две геометрические фигуры вырезаны из бумаги: отрезок длиной L и...

Выбрать и напечатать только те символы, которые встречаются в нем только один раз
Разработать алгоритм:

Выбрать из текста только те символы, которые встречаются в нем только один раз
Дан текст на русском языке. Выбрать из него только те символы, которые встречаются в нем только...

6
0 / 0 / 0
Регистрация: 24.02.2009
Сообщений: 16
24.02.2009, 00:49 2
мгага ромка)))
0
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
24.02.2009, 10:40 3
Цитата Сообщение от katarios Посмотреть сообщение
мгага ромка)))
Оффтоп...
По теме:
ввод массива символьных строк
т.е. как я понял, осуществить ввод нескольких строк текста ?
А потом сделать проверку по кажой строке, точнее по кадому символу каждой строки, является ли этот символ числом, если да, то проверить следующий символ, а вдруг и он тоже чило, тогда у нас уже 2-х значное число, так пока не начнётся текст, потом суммируем найденное число и продолжаем проверку, если закончилась строка, то переходим к новой строке...
Что у Вас не получилось ?
0
0 / 0 / 0
Регистрация: 24.02.2009
Сообщений: 4
24.02.2009, 22:31  [ТС] 4
lexus_ilia
я просто вообще не шаря как делать!(((

Добавлено через 2 часа 30 минут 9 секунд
Цитата Сообщение от lexus_ilia Посмотреть сообщение
Что у Вас не получилось ?
да если бы я знал как ее делать(((
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.02.2009, 10:40 5
рассмотреть их как однозначные или многозначные числа и вычислить сумму этих чисел.
А если строки будут типа 12345678956123, то использовать приемы длинной арифметики, или есть ограничение на длину строки?

Добавлено через 1 час 20 минут 16 секунд
Предлагаю компромиссный вариант. Ограничить длину строк 18 символов и для чисел использовать тип Comp, разновидность Extended без дробной части, в целях экономии памяти.Эти типы хранят 19-20 значащих цифр.
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
uses crt;
const nmax=50;{максимальный размер массива}
type Tmas=array[1..nmax] of string[18];{тип массива, строки длиной до 18 символов}
procedure Summa(x:byte;m:Tmas;var sm:comp);
{процедура по условию задачи, входные параметры - размер массива и сам массив, выходной параметр - сумма}
var i,k,j,ks:byte;{разные счетчики}
    t:comp;{переменная для перевода строки в число}
    c:integer;{код ошибки при переводе}
begin
writeln;
writeln('Stroki iz cifr:');
sm:=0;ks:=0;{сначала сумма и количество строк из цифр = 0}
for i:=1 to x do{идем по массиву}
  begin
    k:=0;{количество цифр в строке=0}
    for j:=1 to length(m[i]) do {идем по каждой строке}
    if m[i][j] in ['0'..'9'] then inc(k);{если цифра, считаем}
    if k=length(m[i]) then{если все цифры}
       begin
         writeln(m[i]);{выводим строку}
         val(m[i],t,c);{переводим в число}
         sm:=sm+t;{прибавляем к сумме}
         inc(ks);{считаем строку}
       end;
   end;
writeln;
if ks=0 then write('Zadannyh strok net!'){если нет нужных строк, сообщаем}
else write('Summa=',sm:0:0);{если есть, выводим сумму}
end;{конец процедуры}
var s:Tmas;{массив}
    n,i:byte;{его размер и счетчик цикла}
    sum:comp;{сумма}
begin
clrscr;
repeat
write('Vvedite kolichestvo strok massiva n=');
readln(n);
until (n>0)and(n<=nmax);{вводим с проверкой размер массивва}
writeln('Vvedite ',n,' strok:');
for i:=1 to n do {вводим массив}
  begin
    write('Stroka ',i,' ');
    readln(s[i]);
  end;
Summa(n,s,sum);{вызываем процедуру с фактическими параметрами}
readln
end.
0
0 / 0 / 0
Регистрация: 24.02.2009
Сообщений: 4
27.02.2009, 23:23  [ТС] 6
Цитата Сообщение от Puporev Посмотреть сообщение
А если строки будут типа 12345678956123, то использовать приемы длинной арифметики, или есть ограничение на длину строки?

Добавлено через 1 час 20 минут 16 секунд
Предлагаю компромиссный вариант. Ограничить длину строк 18 символов и для чисел использовать тип Comp, разновидность Extended без дробной части, в целях экономии памяти.Эти типы хранят 19-20 значащих цифр.
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
uses crt;
const nmax=50;{максимальный размер массива}
type Tmas=array[1..nmax] of string[18];{тип массива, строки длиной до 18 символов}
procedure Summa(x:byte;m:Tmas;var sm:comp);
{процедура по условию задачи, входные параметры - размер массива и сам массив, выходной параметр - сумма}
var i,k,j,ks:byte;{разные счетчики}
    t:comp;{переменная для перевода строки в число}
    c:integer;{код ошибки при переводе}
begin
writeln;
writeln('Stroki iz cifr:');
sm:=0;ks:=0;{сначала сумма и количество строк из цифр = 0}
for i:=1 to x do{идем по массиву}
  begin
    k:=0;{количество цифр в строке=0}
    for j:=1 to length(m[i]) do {идем по каждой строке}
    if m[i][j] in ['0'..'9'] then inc(k);{если цифра, считаем}
    if k=length(m[i]) then{если все цифры}
       begin
         writeln(m[i]);{выводим строку}
         val(m[i],t,c);{переводим в число}
         sm:=sm+t;{прибавляем к сумме}
         inc(ks);{считаем строку}
       end;
   end;
writeln;
if ks=0 then write('Zadannyh strok net!'){если нет нужных строк, сообщаем}
else write('Summa=',sm:0:0);{если есть, выводим сумму}
end;{конец процедуры}
var s:Tmas;{массив}
    n,i:byte;{его размер и счетчик цикла}
    sum:comp;{сумма}
begin
clrscr;
repeat
write('Vvedite kolichestvo strok massiva n=');
readln(n);
until (n>0)and(n<=nmax);{вводим с проверкой размер массивва}
writeln('Vvedite ',n,' strok:');
for i:=1 to n do {вводим массив}
  begin
    write('Stroka ',i,' ');
    readln(s[i]);
  end;
Summa(n,s,sum);{вызываем процедуру с фактическими параметрами}
readln
end.
чето она не работает(((
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.02.2009, 07:10 7
Это уже твои проблемы. Выпрямляй руки. У меня все работает, я кривые и непроверенные программы не выкладываю.
0
28.02.2009, 07:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2009, 07:10
Помогаю со студенческими работами здесь

Выбрать из текста только те символы, которые встречаются в нем только два раза
1. Дана строка,содержащая текст на русском языке.Выбрать из него только те символы,которые...

Выбрать из текста только те символы, которые встречаются в нем только один раз
Здравствуйте, помогите пожалуйста написать программу:) Условие. Дана строка, содержащая текст на...

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

Из заданного предложения выбрать и напечатать только те символы, которые встречаются в нем только 1 раз
Помогите пожалуйста исправить этот код, почему то не выводит это:&quot;В строке нет символов которые...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru