Форум программистов, компьютерный форум, киберфорум
Наши страницы
Clojure
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Эцео
3 / 3 / 0
Регистрация: 18.10.2016
Сообщений: 10
1

Нужна целая задача по нахождению длины строчки

15.03.2017, 19:57. Просмотров 1041. Ответов 10
Метки нет (Все метки)

Прочитать трехмерный массив из стандартного потока ввода. Массив может содержать элементы различных типов – целые, вещественные, комплексные числа, строки, символы, списки, другие массивы. Необходимо найти сумму длин строк, не содержащих символов #\a, #\i и #\u. Если строк в массиве нет, результат – 0.
Совсем не понимаю,как делать
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2017, 19:57
Ответы с готовыми решениями:

Задача по нахождению токов в ветвях
Всем здравствуйте,в задаче мне необходимо найти токи в ветвях(I1 I2 I3).Все необходимые формулы я...

Задача по нахождению К-комплиментарной (K-complementary) пары
Здравствуйте. Помоги разобраться с задачей. Условие: Имеется ввиду что массив должен быть...

Задача по нахождению ошибок в коде(язык с)
Есть код: #include <iostream> using namespace std; int main() { int i; int n = 20;

Задача по нахождению идеальных чисел на заданном промежутке
почему в коде именно к/2 ??? (условие: задача по нахождению идеальных чисе в заданном промежутке;...

Задача:Удалить строчки
в КиР наткнулся на задачу: как понял - надо редактировать срр файл...но как я знаю удалить...

10
_JohnSmith
117 / 53 / 2
Регистрация: 12.02.2017
Сообщений: 194
15.03.2017, 20:04 2
Цитата Сообщение от Эцео Посмотреть сообщение
Совсем не понимаю,как делать
нужна блок схема алгоритма?
1
magirus
15.03.2017, 20:05
  #3

Не по теме:

_JohnSmith, нет, ему нужен код "на блюдечке" и разжевать что каждая строчка означает.

0
Эцео
3 / 3 / 0
Регистрация: 18.10.2016
Сообщений: 10
15.03.2017, 20:10  [ТС] 4
_JohnSmith, Мне бы хотелось код,так как у меня дедлайн по задаче, а я только начал учить лисп и не понимаю,что там происходит,если бы вы рассказали,то был бы очень признателен
0
15.03.2017, 20:10
ntlinuxnt
$ su
1598 / 513 / 97
Регистрация: 18.11.2010
Сообщений: 2,805
Записей в блоге: 2
Завершенные тесты: 5
15.03.2017, 21:31 5
Lisp
1
2
(count "ewrfweqwet")
=> 10
на Clojure Lisp вот так можно посчитать длину одной строки.

Добавлено через 8 минут
Lisp
1
2
3
4
(def onestrarr `("qwewq" "wqeqwr" "qw" 1 2 3))
(count (reduce str (filter #(string? %) onestrarr)))
=> #'user/onestrarr
=> 13
Вот подсчет длины всех строк в "одномерном массиве"
1
Catstail
Модератор
24606 / 12514 / 2284
Регистрация: 12.02.2012
Сообщений: 20,332
16.03.2017, 12:22 6
Лучший ответ Сообщение было отмечено Эцео как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(defvar arr)
(defvar res)  
  
(defun task-3 (a)
 (let ((la (array-dimensions a)) (s 0) (v nil))
   (dotimes (i (car la) s)
     (dotimes (j (cadr la) t)
       (dotimes (k (caddr la) t)
         (setf v (aref a i j k))
         (print v) (terpri)
         (when (stringp v)
            (unless (or (position #\a v)
                        (position #\i v)
                        (position #\u v)) (setf s (+ s (length v))))))))))
 
(setf arr (read))
#3A(((1 "abcd") ("ijk" "klm") ("xvn" "uxy")) ((1 2) ("zzzzzzzzzz" 4) (5 6)))
 
(setf res (task-3 arr))
(print res)
4
nullxdth
1879 / 844 / 64
Регистрация: 12.03.2013
Сообщений: 3,938
16.03.2017, 13:30 7
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun foo (a)
  (let ((len 0))
    (dotimes (i (array-total-size a) len)
      (let ((x (row-major-aref a i)))
        (when (and (stringp x)
                   (some (lambda (char)
                           (find char "aiu"))
                         x))
          (incf len (length x)))))))
 
 
(foo #3A(((1 "abcd")
          ("ijk" "klm")
          ("xvn" "uxy"))
         ((1 2)
          ("zzzzzzzzzz" 4)
          (5 6))))
 
;; 10
Добавлено через 4 минуты
В Common Lisp, если мы имеем ввиду массивы (arrays), то мы всегда можем работать с массивом любого измерения, как с вектором. Следует отобразить (:displaced-to аргумент make-array) многомерный массив на вектор. Или же использовать array-total-size и row-major-aref как в примере выше.

Добавлено через 6 минут
Lisp
1
2
3
4
5
6
7
8
9
(defun foo (a)
  (let ((len 0))
    (dotimes (i (array-total-size a) len)
      (let ((x (row-major-aref a i)))
        (when (and (stringp x)
                   (some (complement (lambda (char)
                                       (find char "aiu")))
                         x))
          (incf len (length x)))))))
Хм. Вот так верно.
4
_JohnSmith
117 / 53 / 2
Регистрация: 12.02.2017
Сообщений: 194
16.03.2017, 13:45 8
Цитата Сообщение от nullxdth Посмотреть сообщение
мы всегда можем работать с массивом любого измерения, как с вектором. Следует отобразить (:displaced-to аргумент make-array) многомерный массив на вектор.
Имеете в виду многомерный массив отобразить на одномерный вектор?
0
nullxdth
1879 / 844 / 64
Регистрация: 12.03.2013
Сообщений: 3,938
16.03.2017, 13:48 9
Цитата Сообщение от _JohnSmith Посмотреть сообщение
Имеете в виду многомерный массив отобразить на одномерный вектор?
Да.
0
Эцео
3 / 3 / 0
Регистрация: 18.10.2016
Сообщений: 10
18.03.2017, 15:30  [ТС] 10
Спасибо всем за помощь!
0
_sg
4123 / 3870 / 294
Регистрация: 12.05.2012
Сообщений: 2,724
19.03.2017, 08:39 11
как вариант:
Lisp
1
2
3
4
5
6
7
8
9
(defun string-sine-aiu-length (v a)
  (loop for e across (make-array
                      (apply #'* (array-dimensions a))
                      :displaced-to a)
        when (and (stringp e) (loop for b in v never (find b e)))
        sum (length e)))
 
> (string-sine-aiu-length '(#\a #\i #\u) #3A(((1 "abcd") ("ijk" "klm") ("xvn" "uxy")) ((1 2)  ("zzzzzzzzzz" 4)  (5 6))))
16
3
19.03.2017, 08:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2017, 08:39

Нужно удалить все строчки, которые удовлетворяют условию заданой строчки
нужно удалить все строчки которые удовлетворяют условию заданой строчки, а то написал находит...

Нужно вывести из Listbox текст выбранной строчки и скачать файл с именем строчки
Дело такое. Программа при запуске сканирует файлы в нужной папку на ftp сервере и забивает имена в...

Вывести число в конце первой строчки и переместить в начало последней строчки, двигаясь по диагонали
Программа должна предложить ввести натуральное число, далее вывести его в конце первой строчки и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru