Лисп-задачки
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп-задачки

Лисп-задачки

Закрытая тема
Поиск в этой теме
Непрочитано 29.03.2004, 08:23 #1
Лисп-задачки
Irinka
 
Учусь...и только
 
Казахстан
Регистрация: 29.03.2004
Сообщений: 1

Помогите, чем сможете, пожалуйста.
1.Составьте списки студентов типа Иванов Иван, Петров Петр, Николаев Николай. 2.Для каждого студента с помощью функции List составьте след. списки: для самого студента-дата рожд.,адрес, ср.балл,. Для отца и матери-ФИО, дата рожд.,место работы(типа того в общем).
3.С помощью функции CONS и SETQ объедините получ. списки и присвойте их в виде значений символам, означающим ФИО каждого студента: ФИО студента-дата рожде., адрес, ср.балл, ФИО отца, дата рожд., место работы, ФИО матери, дата рожд., место работы.
4.Для произвольно выбранных студентов с помощью базовых функций сравните:
год рождения, средний балл, выявить не являются ли они родственниками, выяснить живут ли они с родителями.
5.Для каждого студента составьте списки свойств:
а. оценки по лекциям
б. оценки по практикам
в. оценки по лабораторным
6.Для произвольно выбранных студентов сравнить свойства.
__________________
Ирина
Просмотров: 2962
 
Непрочитано 29.03.2004, 09:42
#2
kos

LISP-программист
 
Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238


Опять двойка...
__________________
Там все есть для счастья - меня там только нет.
Так это значит, что я там - буду!
kos вне форума  
 
Непрочитано 29.03.2004, 09:56
#3
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


Интересно, зачем для этого использовать LISP [sm1013]
plaz вне форума  
 
Непрочитано 29.03.2004, 10:23
#4
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Ну может, хоть свой вариант кинете, хотя бы начало. Задачки то очень простые. Народ поможет, но только в том случае если будет видно что сами что то делать пытаетесь. На халяву зачет сдать, это не к нам...
{Smirnoff} вне форума  
 
Непрочитано 21.04.2011, 21:59
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Подниму тему... Уж очень хорошее название... Только сразу не бейте...
Нашел вот задачку интересную... Сходу решить не удалось... Вот условие...

На железнодорожных путях стоит товарный состав состоящий из цистерн и товарных вагонов. Определить сколько цистерн в составе и первую максимальную по количеству цистерн цепочку, ее начало и длину.
gomer вне форума  
 
Непрочитано 21.04.2011, 23:01
#6
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


я думаю, решение очень сильно будет зависеть от формата передачи в программу состава с вагонами...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 21.04.2011, 23:25
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
я думаю, решение очень сильно будет зависеть от формата передачи в программу состава с вагонами...
ну если очень по простому то состав может выглядеть так: '( 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 ... )
gomer вне форума  
 
Непрочитано 22.04.2011, 08:55
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
ну если очень по простому то состав может выглядеть так: '( 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 ... )
Код:
[Выделить все]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Вагоны...";
            int trainLenght = 30;//Количество вагонов
            Random rm = new Random();//Генератор типа вагона
            int[] train = new int[trainLenght];//Поезд
            ConsoleColor color0 = ConsoleColor.Red;
            ConsoleColor color1 = ConsoleColor.Green;
            ConsoleColor def = Console.ForegroundColor;
            Console.WriteLine("Дано:" );
            //Произвольно формируем набор вагонов в поезде и визуально отображаем его (поезд)
            for (int i = 0; i < train.Length; i++)
            {
                int x = rm.Next(0, 2);
                train[i] = x;                
                Console.ForegroundColor = x == 0 ? color0 : color1;
                Console.Write("{0} ", x);
            }            
            //Словарь, содержащий информацию по имещюимся вагонам типа "0". В качестве ключа - индекс первого вагона в цепочке, в качестве значения - количество вагонов в цепочке
            Dictionary<int, int> x0 = new Dictionary<int, int>();
            //Словарь, содержащий информацию по имещюимся вагонам типа "1". В качестве ключа - индекс первого вагона в цепочке, в качестве значения - количество вагонов в цепочке
            Dictionary<int, int> x1 = new Dictionary<int, int>();

            int type = 0;
            int index = -1;//Порядковый номер вагона
            int count = 0;//Какой по счёту в цепочке
            Dictionary<int, int> cd;//Текущий словарь вагонов
            int index1 = 0;//общий индекс
            //Заполняем словари данными
            foreach (int item in train)
            {
                ++index1;
                if (item == type)
                    ++count;
                else
                {
                    cd = type == 0 ? x0 : x1;
                    cd.Add(index + 1, count);
                    index += count;
                    count = 1;
                    type = item;                    
                }
                if (index1 == train.Length - 1 && item == type)
                {
                    cd = type == 0 ? x0 : x1;
                    cd.Add(index, count);                    
                }                
            }
            KeyValuePair<int,int> n0 = x0.OrderByDescending(n=>n.Value).ThenBy(n=>n.Key).First();
            KeyValuePair<int, int> n1 = x1.OrderByDescending(n => n.Value).ThenBy(n => n.Key).First();
            Console.ForegroundColor = def;
            KeyValuePair<int, int> result;
            if (n0.Value == n1.Value)
                result = n0.Key < n1.Key ? n0 : n1;
            else
                result = n0.Value > n1.Value ? n0 : n1;
            type = result.Key == n0.Key ? 0 : 1;
            Console.WriteLine();
            Console.WriteLine("Результат (индексацию вагонов начинаем с \"1\"):");
            Console.WriteLine("Тип вагона: {0}\nИндекс первого вагона в цепочке: {1}\nКоличество вагонов в цепочке: {2}", type, result.Key + 1, result.Value);      
            Console.ReadKey();
        }
    }
}
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 22.04.2011 в 09:08.
hwd вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп-задачки