Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 04.12.2017, 15:17   #1
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
Репутация: 10
По умолчанию Преобразование кода из 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, 15:47   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,049
Репутация: 5228
По умолчанию

Цитата:
Сообщение от 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 в 15:50.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 04.12.2017, 18:46   #3
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
Репутация: 10
По умолчанию

Спасибо. А проверьте пожалуйста правильно ли я реализовал через функцию 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, 18:51   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,049
Репутация: 5228
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


04:07.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru