Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2017, 14:17   #1
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
По умолчанию Преобразование кода из C в PascalABC.NET (символы и строки) - PascalABC.NET

Здравствуйте, помогите пожалуйста преобразовать этот код из C в PascalABC.NET. Задание. Подсчитать количество слов, которые содержат хотя бы одну букву Z. Выполнение программы в этом случае считает количество слов, содержащих букву z равно 7.
Код:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
int count_words(const char* s, char c){
    const char* p = s;
    int n = 0;
 
    while((p = strchr(p, c)) != NULL){
        while(*p && !isspace(*p))
            ++p;
        ++n;
    }
    return n;
}
 
int main(void){
    char s[] = "ABz zfz xAAAz ARz AAAz zT Az";
    printf("count words: %d\n", count_words(s, 'z'));
    return 0;
}
ParkerVans вне форума Ответить с цитированием
Старый 04.12.2017, 14:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ParkerVans Посмотреть сообщение
в PascalABC.NET
в PascalABC.NET, говорите.

тут на форуме есть гуру лямбда функций.

берём код отсюда (c) Plague,
делаем пару движений напильником, получаем:
Код:
function count_words(s : string; ch:char):integer;
begin
  count_words := s.ToWords(Arr(' ')).Where(x->x.Count(i->i=ch)>0).Count;
end;  

begin
  var s : string := 'ABz zfz xAAAz ARz AAAz zT Az';
  WriteLn('count words: ',count_words(s, 'z'));
end.
устраивает?

p.s. только не спрашивайте, как это работает, я не отвечу

Последний раз редактировалось Serge_Bliznykov; 04.12.2017 в 14:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.12.2017, 17:46   #3
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
По умолчанию

Спасибо. А проверьте пожалуйста правильно ли я реализовал через функцию pos в этой задаче. Подсчитать количество слов, которые содержат хотя бы одну букву Z.
Код
Код:
var s1,z:string;
     p:integer;
begin
z:='ABz zfz xAAAz zina zurich zero zigmund';
s1:='z';
p:=pos(s1,z);
write(p);
end.
ParkerVans вне форума Ответить с цитированием
Старый 04.12.2017, 17:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ParkerVans Посмотреть сообщение
пасибо. А проверьте пожалуйста правильно ли я реализовал через функцию pos в этой задаче. Подсчитать количество слов, которые содержат хотя бы одну букву Z.
Это шутка такая?
Нет, не правильно.
Ваша программа находит первое вхождение буквы "z" в строку. и выводит его.
Всё. Больше ничего.
Ни о каких "Подсчитать количество слов", да, собственно, и о словах в вашем коде ничего нет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.12.2017, 17:56   #5
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
По умолчанию

Да, он выдает результат что, буква z начинается с 3 позиции, а скажите пожалуйста как сделать чтобы выдал число 7 в данном примере, т.е. буква z встречается в 7 словах.
ParkerVans вне форума Ответить с цитированием
Старый 05.12.2017, 10:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ParkerVans Посмотреть сообщение
а скажите пожалуйста как сделать чтобы выдал число 7 в данном примере, т.е. буква z встречается в 7 словах.
см. выше, пост #2
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PascalABC.Net now2 Помощь студентам 2 27.03.2014 21:03
PascalABC.NET v1ktor Паскаль, Turbo Pascal, PascalABC.NET 0 21.06.2011 13:58
PascalABC.net gogomon93 Помощь студентам 5 17.04.2011 18:48
PascalABC.net *stRong* Помощь студентам 2 10.06.2010 17:50