805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
1

Написать комментарии к коду

18.06.2015, 16:38. Показов 1976. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, есть две маленьких программки. Назначение каждой написано в комментариях.
Помогите пожалуйста прокомментировать каждую строку, чтобы было понятно, что построчно делается в программах.
С++ знаю неплохо, но вот синтаксис F# не знаю вовсе.
Братцы, прошу, помогите)
F#
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
//Задача 1
//Определение того, сколько раз встречается минимальный элемент в списке. 
let rec my_min l =
    match l with
    | [] -> 0
    | h::t when t=[] -> h
    | h::t -> min h (my_min t) 
let rec min_count l x =
    match l with 
    | [] -> 0
    | h::t when h=x -> 1 + min_count t x
    | h::t -> min_count t x
let count l =
    let x = my_min l
    min_count l x
 
//Задача 2
//Формирует список L, включив в него по одному разу элементы, которые входят в список L1,
//но не входят в список L2. 
let rec contain l x =
    match l with
    | [] -> false
    | h::t when h=x -> true
    | h::t -> contain t x
let rec makelist l1 l2 =
    match l1 with
    | [] -> []
    | h::t when (contain t h) || (contain l2 h) -> makelist t l2
    | h::t -> h::makelist t l2
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2015, 16:38
Ответы с готовыми решениями:

Написать комментарии к коду
укажите коменты к каждой строке кода 2Program lab2; uses wincrt; Var t,t1:String; v:String;...

Написать Комментарии к коду
Напишите пожалуйста комментарии к данному коду, буду очень признателен. using System; using...

Написать комментарии к коду
clc, clear all % MX=V, M - трехдиагональная матрица M = V=' A=diag(M,-1); % -...

Написать комментарии по коду
Это для переносимости вроде, порядок байт чтоб не влиял. Я конечно понимаю что нужно учить...

4
Заблокирован
18.06.2015, 17:46 2
Лучший ответ Сообщение было отмечено Ferrari F1 как решение

Решение

Ferrari F1, первая

F#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let rec my_min l = //определяем рекурсивную функцию поиска мин. элемента
    match l with 
    | [] -> 0    //если пустой список, возвращаем 0 
    | h::t when t=[] -> h //если остался 1 элемент, то его и возвращаем
    | h::t -> min h (my_min t) //выбираем минимальный
 
let rec min_count l x = //рекурсивная функция подсчета встречаемости элемента
    match l with 
    | [] -> 0 //если пустой список, возвращаем 0 
    | h::t when h=x -> 1 + min_count t x //если "голова" равна элементу, то увеличиваем счетчик
    | h::t -> min_count t x //в противнм случае отбрасываем первый элемент
 
let count l = //обертка над рекурсивными функциями
    let x = my_min l //поиск минимального 
    min_count l x //подсчет частнотности
 
let x = [-1;2;2;3;3;0;-1;-1]
count x |> printfn "%A"
вторую попробуйте сами. Кстати говоря первую можно упростить.
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.06.2015, 19:20  [ТС] 3
Ev_Hyper, благодарю Вас, но можно Вас попросить пожалуйста еще вторую сделать, завтра утром просто сдавать, а времени совсем нет =(
0
Заблокирован
18.06.2015, 20:02 4
Лучший ответ Сообщение было отмечено Ferrari F1 как решение

Решение

Цитата Сообщение от Ferrari F1 Посмотреть сообщение
благодарю Вас, но можно Вас попросить пожалуйста еще вторую сделать, завтра утром просто сдавать

Не по теме:

готово, но тогда с вас еще 1 задача для решения :D



Ferrari F1, вторая:

F#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let rec contain l x = //рекурсивная функция проверки вхождения элемента в список
    match l with
    | [] -> false //если список пустой, возвращаем false
    | h::t when h=x -> true //если голова равна искомому значению, то возвращаем истину
    | h::t -> contain t x //в противном случае отбрасываем голову и проверяем отдельно хвост
 
let rec makelist l1 l2 =
    match l1 with
    | [] -> []         
    //первое условие - вхождение элемента в остальную часть списка
    //второе условие - вхождение элемента во второй список
    //если хотя бы одно из них выполняется проверяем хвост, а первый элемент отбрасываем 
    | h::t when (contain t h) || (contain l2 h) -> makelist t l2 
    | h::t -> h::makelist t l2 //в противном случае добавляем элемент к возвращаемому списку
 
let l1 = [1;2;3;5;7;0]
let l2 = [2;3;4;9;6;7]
 
makelist l1 l2 |> printfn "%A"
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.06.2015, 20:52  [ТС] 5
Ev_Hyper, спасибо Вам огромное!
0
18.06.2015, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 20:52
Помогаю со студенческими работами здесь

Написать комментарии к коду
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Написать комментарии к коду
обьясненя напишите с помощью знака ( ' ) в самой програме. Собственно задание: Преобразовать...

Написать комментарии к коду
#include "stdafx.h" #include "iostream" #include "string.h" using namespace std; class...

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


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

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

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